如何按屬性分組並選擇其他屬性作爲使用LINQ的列表?Linq GroupBy並選擇其他屬性作爲列表
我不善於所以在這裏解釋它是一個例子:
可以說我有能以JSON表示這樣的C#對象的列表:
[
{ "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 }
]
在所有這些對象只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