Linq to sql 在Linq to Sql中计算分组结果中的项

Linq to sql 在Linq to Sql中计算分组结果中的项,linq-to-sql,Linq To Sql,我想根据项目id对查询结果进行分组,并计算每组中的项目数。最后,我将从每个组中只取一个项目,并显示该组的计数 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() }; var items = fr

我想根据项目id对查询结果进行分组,并计算每组中的项目数。最后,我将从每个组中只取一个项目,并显示该组的计数

   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() };
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()
            };
。。。但这将为您提供一个具有“Count”属性(int)和“First”属性(与行的类型相同)的对象集合

您可能要做的是选择形状与行相似的内容,除了使用count属性。一种方法是按如下方式逐字段执行:

var items = from r in rows
            group r by r.ID into g
            select new { Count = g.Count(), First = g.First() };
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()
            };

您可以在Linq中进行如下分组:

var items = from r in rows
            group r by r.ID into g
            select new { Count = g.Count(), First = g.First() };
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()
            };
。。。但这将为您提供一个具有“Count”属性(int)和“First”属性(与行的类型相同)的对象集合

您可能要做的是选择形状与行相似的内容,除了使用count属性。一种方法是按如下方式逐字段执行:

var items = from r in rows
            group r by r.ID into g
            select new { Count = g.Count(), First = g.First() };
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()
            };