如何使用Linq对列表进行分组

时间:2016-09-16 16:42:29

标签: c# .net database linq linq-to-entities

我的情景如下:

我有以下数据 -

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

我想把它输出为两个表

的GroupID,名称

12, samename
13, name2
14, name3

GroupID,Place,Location

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

这是我继承的非常糟糕的设计 - 我试图让它变得更好......而不会破坏旧代码。

1 个答案:

答案 0 :(得分:4)

您需要分两步完成,首先将其分组到sizeof(int)Name

GroupID

并在第二种情况下将它们与其他三列(var result = list.GroupBy(x=>new {x.GroupID, x.Name}) .Select(g=> new { GroupID = g.Key.GroupID, Name = g.Key.Name}); GroupIDPlace)分组:

Location