计算Linq到Sql中分组结果中的项目

时间:2009-10-28 02:17:44

标签: linq-to-sql

我想按项目ID分组查询结果,并计算每组中项目的数量。最后我将只从每个组中拿出一个项目并显示该组的计数

   results.GroupBy(r=>r.ID)....

1 个答案:

答案 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()
            };