プロパティでグループ化し、LINQを使用してリストとして他のプロパティを選択する方法は?Linq GroupByと他の属性をリストとして選択
私はここでそれを説明するの苦手は例です:のみすべてのこれらのオブジェクトの中
[
{ "id":123, "name":"John", "carId":1, "carAge":3 },
{ "id":123, "name":"John", "carId":2, "carAge":4 },
{ "id":4, "name":"Mary", "carId":3, "carAge":3 },
{ "id":4, "name":"Mary", "carId":4, "carAge":3 },
{ "id":123, "name":"John", "carId":5, "carAge":3 }
]
を:
私はこのようなJSONで表現することができますC#のオブジェクトのリストを持っているとしましょうcarId
はユニークです。
私はそれらを人の詳細でグループ化し、これらの詳細を接続された車の詳細と結合したいと考えています。
最終的な結果は次のようになりますが、C#のオブジェクトのようになります。
[
{"id":123, "name":"John",
[
{"carId":1, "carAge":3},
{"carId":2, "carAge":4},
{"carId":5, "carAge":3}
]
},
{"id":4, "name":"Mary",
[
{"carId":3, "carAge":3},
{"carId":4, "carAge":3}
]
}
]
編集:
私はいずれかを必要としないので、私は
list.GroupBy(x => new { x.Id, x.Name })
後にこだわっています集約関数ではなく、選択のみ。
もっとコードを投稿しないことをお詫び申し上げます。これは単純化されたバージョンであり、実際にはより多くのフィルタリングと複雑なドメイン固有の用語があります。
すべてがメモリに格納されています.DBは必要ありません。
あなたが試したことを示してください。私たちはそこから助けることができます。グループ化してプロジェクトをまとめる方法を知るには多くの情報源があります。 –
[mcve]を指定すると、作業が簡単になります。これは、単純な 'GroupBy'操作のように見えます。ここでは、キーセレクタと要素セレクタを個別に分離していますが、コードで確実に言えるようになります。 –
https://stackoverflow.com/questions/2280183/how-to-group-by-custom-types-with-linqが役立ちます。複合キーによるグループ分けのようです - 2つの値から必要なものです – Vladimir