2012-12-14 102 views

回答

2

尝试

ixcxs.GroupBy(g => g.CatName) 
    .Select(s => new 
    { 
     CatName = s.Key, 
     n_items = s.Count() 
    }); 
在查询语法

同样的事情:

from i in ixcxs 
group i by i.CatName into g 
select new 
{ 
    CatName = g.Key, 
    n_items = g.Count() 
} 
+0

方法“单”和“的SingleOrDefault”只能用作最终查询操作。请考虑在此实例中使用方法“FirstOrDefault”。 – Urah

+0

我与 '做了它从吨db.ixcxs 组通过新 { t.CatName }入克叔 选择新 { g.Key.CatName, 总共= g.Count() } ;' 但是更优化 – Urah

+0

嗯好吧多数民众赞成在另一种方式 – Urah

4

你并不需要从组中选择第一项获取CatName - 使用分组密钥代替:

var query = from i in ixcxs 
      group i by i.CatName into g 
      select new { 
       CatName = g.Key, 
       n_items = g.Count() 
      }; 

同样的,方法的语法:

var query = ixcxs.GroupBy(i => i.CatName) 
       .Select(g => new { CatName = g.Key, n_items = g.Count() });