将Linq中的分组结果中的项目统计为Sql
问题描述:
我想根据项目ID和计数每个组中项目的数量对查询结果进行分组。最后,我将只需要一个项目从每个组和组的计数显示将Linq中的分组结果中的项目统计为Sql
results.GroupBy(r=>r.ID)....
答
你可以做一些分组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()
};
选项2似乎很好地工作谢谢 – zsharp 2009-10-28 02:40:45