簡體   English   中英

如何使用Linq對列表進行分組

[英]How do I group a list using Linq

我的情況如下:

我有以下數據-

ID,名稱,地點,位置,GroupID

1, samename, Grand Central, New York, 12
2, samename, Opera House, Sydney, 12
3, samename, Opera House, Sydney, 12
4, name2, Emirates, London, 13
5, name3, Opera House, Sydney, 14

我想將其輸出為兩個表

組ID,名稱

12, samename
13, name2
14, name3

GroupID,地點,位置

Grand Central, New York, 12
Opera House, Sydney, 12
Opera House, Sydney, 12
Emirates, London, 13
Opera House, Sydney, 14

我繼承的這確實是一個糟糕的設計-我正在嘗試使其更好..而不破壞舊代碼。

您需要分兩步進行操作,首先將它們GroupIDNameGroupID

var result = list.GroupBy(x=>new {x.GroupID, x.Name})
                 .Select(g=> new { GroupID = g.Key.GroupID, Name = g.Key.Name});

在第二種情況下, Place它們與其他三列( GroupIDPlaceLocationGroupID

var result = list.GroupBy(x=>new {x.GroupID, x.Location,x.Place})
                 .Select(g=> new 
                         { 
                           GroupID = g.Key.GroupID, 
                           Location = g.Key.Location, 
                           Place = x.Key.Place
                         });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM