Ich habe das Schlüsselwort "select" und die Erweiterungsmethode verwendet, um ein IEnumerable<T>
mit LINQ zurückzugeben, aber ich muss ein generisches zurückgeben Dictionary<T1, T2>
und kann es nicht herausfinden. Das Beispiel, aus dem ich dies gelernt habe, hat etwas in einer ähnlichen Form verwendet:
IEnumerable<T> coll = from x in y
select new SomeClass{ prop1 = value1, prop2 = value2 };
Das gleiche habe ich auch mit Erweiterungsmethoden gemacht. Ich nahm an, dass ich, da die Elemente in a Dictionary<T1, T2>
iteriert werden können KeyValuePair<T1, T2>
, "SomeClass" im obigen Beispiel durch " new KeyValuePair<T1, T2> { ...
" ersetzen könnte , aber das funktionierte nicht (Schlüssel und Wert wurden als schreibgeschützt markiert, sodass ich diesen Code nicht kompilieren konnte ).
Ist dies möglich oder muss ich dies in mehreren Schritten tun?
Vielen Dank.
.ToDictionary(item => item.prop1, item => item.prop2);
um explizit den Wert auch einzustellen.Eine Sammlung von
KeyValuePair
ist noch expliziter und funktioniert sehr gut.quelle