我想按项目ID分组查询结果,并计算每组中项目的数量。最后我将只从每个组中拿出一个项目并显示该组的计数
results.GroupBy(r=>r.ID)....
答案 0 :(得分:1)
您可以在Linq中进行一些分组:
var items = from r in rows
group r by r.ID into g
select new { Count = g.Count(), First = g.First() };
...但是这将为您提供一组具有“Count”属性(int)和“First”属性(与您的行类型相同)的对象。
您可能想要做的是选择与您的行类似的形状,除了count属性。一种方法是按字段逐个字段:
var items = from r in rows
group r by r.ID into g
let f = g.First()
select new
{
f.ID, f.Name, f.Foo, f.Bar, // etc
Count = g.Count()
};