LINQ - リストを辞書に変換して値をリストにする 質問する

LINQ - リストを辞書に変換して値をリストにする 質問する

私は

List<MyObject> 

データベースから取得します。ただし、グループ化のために、MyObject のプロパティでキーを設定したいと思います。LINQ を使用してリストを次のものにキャストする最適な方法は何ですか。

Dictionary<long, List<MyObject>>

以下のものがあります:

myObjectList.ToDictionary(x => x.KeyedProperty)

しかし、次のように返されます:

Dictionary<long, MyObject>

ベストアンサー1

MyObjectインスタンスをグループ化してKeyedProperty、そのグループ化を に入れたいようですねDictionary<long,List<MyObject>>。そうであれば、次のことを試してください。

List<MyObject> list = ...;
var map = list
  .GroupBy(x => x.KeyedProperty)
  .ToDictionary(x => x.Key, x => x.ToList());

おすすめ記事