集合中所有项的总和

73
使用LINQ to SQL,我有一个Order类,其中包含一个OrderDetails集合。Order Details有一个名为LineTotal的属性,该属性获取Qnty x ItemPrice。
我知道如何使用新的LINQ查询从数据库中查找订单总金额,但是由于我已经在DB中拥有OrderDetails集合,是否有一种简单的方法直接从集合中返回LineTotal的总和?
我想将订单总金额作为我的Order类的一个属性添加进去。我可以循环遍历集合,并使用for each Order.OrderDetail计算总和,但我猜测有更好的方法。
1个回答

162

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

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

你也可以使用lambda表达式来完成这个任务,这样会更加简洁。

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

如果您想要的话,您可以像这样将其连接到您的Order类:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接