一个集合中的项目的总和

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

我知道如何做一个新的LINQ查询的数据库来查找订单总额,但因为我已经从数据库OrderDetails的集合,是否有一个简单的方法直接从集合中返回LineTotal的总和?

我想添加订单总额作为我的订单类的属性。 我想我可以通过收集循环,并计算与每个Order.OrderDetail的总和,但我猜是有一个更好的办法。

你可以做LINQ到对象和使用LINQ来计算总数:

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

你也可以使用lambdaexpression式来做到这一点,这有点“更清洁”。

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

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

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