繁体   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