集合中的项之和

使用 LINQtoSQL,我有一个 Order 类和一个 OrderDetails 集合。OrderDetails 有一个名为 LineTotal 的属性,该属性获取 Qnty x ItemPrice。

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

我想将订单总数作为 Order 类的一个属性添加。我想我可以循环遍历这个集合并计算每个 Order 的和。但我想还有更好的办法。

105209 次浏览

你可以使用 LINQ 来计算对象,并使用 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);
}
}
}