我有以下数据集,它存储在名为 list1 的变量中。
countrypk | countryname | statepk | statename
---------------------------------------------
1 USA 1 New York
1 USA 2 California
2 Canada 3 Manitoba
我希望能够按国家/地区分组,并检索国家/地区名称。
我有以下 LINQ 可以实现该效果,但想知道是否有更好或更直接的方法在 LINQ 中实现此目的。
var finalList = list1
.GroupBy(item => item.countrypk)
.Where(item => item.Count() > 0)
.Select(item => item.First())
所需的输出是:
countrypk | countryname
---------------------------------------------
1 USA
2 Canada
最佳答案
不需要添加Where
。如果您有一个组,则其中至少包含一个项目。你可以这样做:
list1.GroupBy(item => item.countrypk)
.Select(item => new { item.Key, item.First().countryname} );
或者使用 GroupBy
的不同重载:
list1.GroupBy(item => item.countrypk,
selector => new { selector.countrypk, selector.countryname} )
.Select(group => group.First())
关于c# - LINQ:分组依据,并检索公共(public)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43643001/