在这里遵循教程https://www.tutorialspoint.com/chash-linq-sum-method来总结列表中的值。但我有多个列,因此代码失败于:
double res = ProductList.AsQueryable().Sum();
Console.WriteLine(res);
请参阅此处文件末尾 https://dotnetfiddle.net/vmtTuP 以了解问题。
在简单的情况下,如果您想要
Sum
某个值,例如 Qty
,只需指定它即可:
double res = ProductList.Sum(item => item.Qty);
如果您想一次性计算几个值的总和(例如,两个
Qty
和
Tax
),您可以使用Aggregate
:
(double Qty, double Tax) res = ProductList
.Aggregate((Qty : 0.0, Tax : 0.0), (s, a) => (s.Qty + a.Qty, s.Tax + a.Tax));
Console.Write($"Qty = {res.Qty}; Tax = {res.Tax}");
AsQueryable()
,您所需要做的就是指定您想要求和的对象的字段 - 例如,如果您想求和
Tax
:
double res = ProductList.Sum(x => x.Tax);
Console.WriteLine(res);