Query
public void Linq77()
{
List products = GetProductList();
var categoryCounts =
from p in products
group p by p.Category into g
select new { Category = g.Key, ProductCount = g.Count() };
ObjectDumper.Write(categoryCounts
}
Lambda Expression
public void Linq77()
{
List products = GetProductList();
var categoryCounts = products.GroupBy(prod => prod.Category).
Select(prodGroup => new {Category = prodGroup.Key, ProductCount = prodGroup.Count()});
ObjectDumper.Write(categoryCounts);
}
Output
Category=Beverages ProductCount=12
Category=Condiments ProductCount=12
Category=Produce ProductCount=5
Category=Meat/Poultry ProductCount=6
Category=Seafood ProductCount=12
Category=Dairy Products ProductCount=10
Category=Confections ProductCount=13
Category=Grains/Cereals ProductCount=7