问题描述
我正在寻找一种使用方法语法按列分组的LINQ查询,选择每个组的第一个成员,并将每个组的总数添加到每个组的选定实体中。
有没有一种方法可以用LINQ方法语法中的一个优雅的语句来实现?
输入:
OrderId Name Category
=============================
1 Sam X
2 Sam Y
3 Matthew A
4 Matthew B
输出:
OrderId Name Category Count
======================================
1 Sam X 2
4 Matthew B 2
类似这样的事情。 category的值与我无关,我只想从组中获取任何元素。
解决方法
应该像带有投影 和一些 aggregates
的GroupBy
一样简单
var results = someList
.Group(x => x.Name)
.Select(x => new Entity()
{
Name = x.Key,OrderId = x.First().OrderId,Category = x.First().Category,Count = x.Count()
});