Dictionary<string, List<CustomObject>>
からList<CustomObject>
を作成するためにLINQを使用しようとしています。 「var」を使用してこれを機能させることはできますが、匿名型を使用したくありません。これが私が持っているものです
var x = (from CustomObject o in ListOfCustomObjects
group o by o.PropertyName into t
select t.ToList());
x
を取得したら、LINQライブラリのCast<>()
を使用しようとしましたが、無効なキャストであるためにコンパイルの問題が発生します。
Dictionary<string, List<CustomObject>> myDictionary = ListOfCustomObjects
.GroupBy(o => o.PropertyName)
.ToDictionary(g => g.Key, g => g.ToList());
@Michael Blackburnについてコメントすることはできませんが、この場合GroupByは必要ないので、下票を得たと思います。
次のように使用します。
var lookupOfCustomObjects = listOfCustomObjects.ToLookup(o=>o.PropertyName);
var listWithAllCustomObjectsWithPropertyName = lookupOfCustomObjects[propertyName]
さらに、これはGroupBy()。ToDictionary()を使用する場合よりもパフォーマンスが優れていることがわかりました。