集合中的项目总和

时间:2008-09-15 04:53:38

标签: linq sum

使用LINQ to SQL,我有一个带有OrderDetails集合的Order类。订单明细有一个名为LineTotal的属性,它获得Qnty x ItemPrice。

我知道如何对数据库进行新的LINQ查询以查找订单总数,但由于我已经拥有了DB的OrderDetails集合,是否有一种简单的方法可以直接从集合中返回LineTotal的总和?

我想将订单总数添加为我的Order类的属性。我想我可以遍历集合并用每个Order.OrderDetail计算总和,但我猜有更好的方法。

1 个答案:

答案 0 :(得分:156)

您可以执行LINQ to Objects并使用LINQ来计算总数:

decimal sumLineTotal = (from od in orderdetailscollection
select od.LineTotal).Sum();

你也可以使用lambda表达式来做这件事,这有点“干净”。

decimal sumLineTotal = orderdetailscollection.Sum(od => od.LineTotal);

如果你愿意,你可以将它连接到你的Order-class:

Public Partial Class Order {
  ...
  Public Decimal LineTotal {
    get {
      return orderdetailscollection.Sum(od => od.LineTotal);
    }
  }
}