1

我整晚都在绞尽脑汁(再次)想获得列表中每组独特项目的总数。我能够获得唯一的列表项。但我似乎无法弄清楚如何获得每组独特物品的数量。请告诉我这是否有意义。下面是我的代码:

    List<string> categories = new List<string>();

    foreach (var item in Model)
    {
        categories.Add(item.Category);
    }
    IEnumerable<string> distinctCategories = categories.Distinct();                                                                      

        foreach (string category in distinctCategories)
        {
        <a href="http://localhost:62087/Items/SearchIndex?itemCategory=@category">@category @category.Count()</a>
        } 

如您所见,我在模型的“类别”属性 (Item.Category) 中为每个唯一项目显示了一个链接。当您在链接末尾看到类别计数时,它实际上显示了该类别中的字符数(例如“Rings”类别的数字 5)。但我真的希望这个数字代表类别“环”的次数,例如,在模型的类别属性中找到。

请帮忙

4

1 回答 1

3

要获得计数,您需要使用 aGroupBy而不是Distinct

var distinctCategories =
    categories.GroupBy(x => x)
              .Select(g => new { Name = g.Key, ItemsCount = g.Count() });
foreach (var category in distinctCategories)
{
    <a href="http://localhost:62087/Items/SearchIndex?itemCategory=@category.Name">@category.Name @category.ItemsCount</a>
}
于 2013-06-03T12:16:27.620 回答