来自给定的产品列表
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"));
如何从每个区域中选择前 2 名产品(基于价格)?
我写过类似的东西
var query = productList.OrderByDescending(p => p.ProductPrice).
Take(2).GroupBy(r => r.Region);
最佳答案
首先按区域分组,然后在每个组内执行 OrderBy/Take。例如:
var query = productList
.GroupBy(r => r.Region)
.Select(group => new { Region = group.Key,
Orders = group.OrderByDescending(p => p.ProductPrice)
.Take(2) });
关于C# 从每个区域中选择前 2 个产品详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1835124/