列出IQueryable的每个“类别”的计数

时间:2010-08-11 07:40:37

标签: linq asp.net-mvc-2

我有一个列出类别的mvc页面,我想让它计算每个类别的产品数量。这是可以理解的。

<% foreach (var item in Model.Categories) { %>
.....
<td><%: item.CategoryName %></td>
<td><%: item.Products.Count() %></td>

它列出: 五 5

而不是: 3 2

任何想法我如何能够按类别“划分”它?

/ M

2 个答案:

答案 0 :(得分:1)

按类别分组,获取每个类别的所有产品计数的总和。看看这是否适合你。

var query = Model.Categories
                 .GroupBy(item => item.CategoryName)
                 .Select(g => new {
                             CategoryName = g.Key,
                             Count = g.Sum(item => item.Products.Count())
                         });

答案 1 :(得分:0)

也可以使用LINQ语法:

var query = from item in Model.Categories
            group item by item.CategoryName into g
            select new { CategoryName = g.Key, Count = g.Count() };