c# - 计算列表中属性的总和

标签 c# linq sum

我有以下类(class):

public class Summary
{
        public string Name { get; set; }
        public string Marks { get; set; }
}

使用样本数据
SummaryList.Add(new ActivitySummary() { Name = "ATT",  Marks = "200"});
SummaryList.Add(new ActivitySummary() { Name =  "CHARTER",  Marks ="600"});

我想将另一个列表项添加到包含 Total of Marks 属性的列表中。
SummaryList.Add(new ActivitySummary() { Name =  "TOTAL",  Marks ="800"});

如何使用 LINQ 计算 Marks 属性的总和?

最佳答案

为了计算总和,使用 Sum :

SummaryList.Add(new ActivitySummary() {
    Name =  "TOTAL",
    Marks = SummaryList.Sum(item => Convert.ToInt32(item.Marks)).ToString()
});

如果您的 Marks属性只包含整数,使其类型为 string没有意义。如果查询类型为 int,您可以简化查询:
public class Summary
{
    public string Name { get; set; }
    public int Marks { get; set; }
}

SummaryList.Add(new ActivitySummary() {
    Name =  "TOTAL",
    Marks = SummaryList.Sum(item => item.Marks)
});

如果您的 Marks属性不是整数,使用 decimal , floatdouble而不是 int (和 Convert.ToDecimalConvert.ToSingleConvert.ToDouble 分别)。

关于c# - 计算列表中属性的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41439356/

相关文章:

c# - 无法使用 LINQ to XML 获取元素列表

c# - 使用 Linq 合并列表列表

python - 使用 Python 对包含 'None' 的列表求和

sql-server - 子查询中对一组数字求和

c# - 查找对对象的引用

c# - IL:ldfld vs ldflda

sql-server - Entity Framework - SkipWhile

MySQL按比例统计上一期的不同值

c# - 指示服务器请求失败的最佳实践方法?

sql - 在将 SQL 查询转换为 LINQ 方面需要帮助