从给定的产品列表中
List<Product> productList = new List<Product>();
productList.Add(new Product("P001", 34566.78M, "North"));
productList.Add(new Product("P004", 4566.78M, "East"));
productList.Add(new Product("P007", 14566.78M, "South"));
productList.Add(new Product("P010", 2456.178M, "South"));
productList.Add(new Product("P011", 341566.78M, "North"));
productList.Add(new Product("P006", 64566.878M, "East"));
productList.Add(new Product("P00188", 664566.78M, "East"));
productList.Add(new Product("P00111", 3444566.78M, "North"));
productList.Add(new Product("P00134", 3234566.78M, "South"));
Run Code Online (Sandbox Code Playgroud)
如何从每个地区选择前2产品(基于价格)?
我写过类似的东西
var query = productList.OrderByDescending(p => p.ProductPrice).
Take(2).GroupBy(r => r.Region);
Run Code Online (Sandbox Code Playgroud)
首先按地区分组,然后在每个组内执行OrderBy/Take.例如:
var query = productList
.GroupBy(r => r.Region)
.Select(group => new { Region = group.Key,
Orders = group.OrderByDescending(p => p.ProductPrice)
.Take(2) });
Run Code Online (Sandbox Code Playgroud)