小编Dem*_*ons的帖子

LINQ Sum使用GroupBy和OrderByDescending嵌套集合

我有:

public class Order
{
    public string Customer;
    public List<OrderLine> OrderLines;
}

public class OrderLine
{
    public decimal Quantity;
    public decimal UnitPrice;
}
Run Code Online (Sandbox Code Playgroud)

我的目标是按降序金额搜索客户订单列表.(金额==每个订单数量的加法*UnitPrice)

假设我们有2个客户的6个订单(Customer1,Customer2).每个客户都有3个orderLines.

我正在尝试:

var result = Database.GetAllOrders().OrderByDescending(order =>  
          order.Lines.Sum(ol=>ol.Quantity*ol.UnitPrice))
         .GroupBy(order=>order.CustomerName, 
         order=>order.Lines.Sum(ol=>ol.Quantity*ol.UnitPrice),
            (customerName, amount) => new {Customer=customerName, Amount=amount});
Run Code Online (Sandbox Code Playgroud)

但我得到这样的东西:

客户2:
- 金额:78
- 金额:89
- 金额:12

客户1:
- 金额:64
- 金额:36
- 金额:28

虽然我想要寻求的是:

客户2:
- 金额179

客户1:
- 金额128

请问有什么建议吗?
非常感谢!

c# linq group-by

4
推荐指数
1
解决办法
1673
查看次数

标签 统计

c# ×1

group-by ×1

linq ×1