C# 对多列列表中的值求和[重复]

问题描述 投票:0回答:2

在这里遵循教程https://www.tutorialspoint.com/chash-linq-sum-method来总结列表中的值。但我有多个列,因此代码失败于:

            double res = ProductList.AsQueryable().Sum();
            Console.WriteLine(res);

请参阅此处文件末尾 https://dotnetfiddle.net/vmtTuP 以了解问题。

c# linq sum
2个回答
3
投票

在简单的情况下,如果您想要

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}");
    

0
投票
您不需要

AsQueryable()

,您所需要做的就是指定您想要求和的对象的字段 - 例如,如果您想求和 
Tax
:

double res = ProductList.Sum(x => x.Tax); Console.WriteLine(res);
    
© www.soinside.com 2019 - 2024. All rights reserved.