GroupByオペレーターは、指定されたキーの値に応じて、オブジェクトシーケンスをより小さなグループに分割します。 「Person」カテゴリでは、「PersonID」プロパティをグループオブジェクトの鍵として使用できます。これにより、辞書に似た構造が効果的に作成されます。キーは唯一の「人物」値であり、値は各「PersonID」に関連付けられた「車」値のリストです。
コードの例
「人」オブジェクトをグループ化して、「PersonID」に従って対応する車リストを取得するために、次のLINQクエリ式を使用できます。または、非クエリ式を使用して同じ結果を達成することができます。
results
「結果」変数には、2つの属性がある匿名オブジェクトのコレクションが含まれるようになりました。
var results = from p in persons group p.car by p.PersonId into g select new { PersonId = g.Key, Cars = g.ToList() };
"cars":人が所有するすべての車のリスト
var results = persons.GroupBy( p => p.PersonId, p => p.car, (key, g) => new { PersonId = key, Cars = g.ToList() });
「結果」コレクションの反復により、各ユニークな「PersonID」の必要な情報を取得できます。
その他の考慮事項以上がLinqのGroupByオペレーターは、共有プロパティ値に基づいてオブジェクトを効率的に集約するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。