我整晚都在大脑中(再次)想要获得列表中每组唯一项目的总数。我能够获得唯一的列表项。但我似乎无法弄清楚如何获得每组独特物品的数量。请告诉我这是否有意义。下面是我的代码:
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>
}
如您所见,我在Model的“Category”属性(Item.Category)中为每个唯一项显示了一个链接。如果您在链接末尾看到类别计数,它实际上会显示该类别中的字符数(例如“Rings”类别的数字5)。但我真的希望数字代表“Rings”类别的次数,例如,在Model的Categories属性中找到。
请帮忙
答案 0 :(得分:3)
要计算,您需要使用GroupBy
代替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>
}