c# - 使用 linq 从列表中获取值的总和?

标签 c# linq list c#-3.0

我正在尝试使用 linq 从列表列表中获取值的总和?我的数据如下代码所示

        List<List<string>> allData = new List<List<string>>();
        using (StreamReader reader = new StreamReader(path))
        {
            while (!reader.EndOfStream)
            {
                List<string> dataList;
                dataList = reader.ReadLine().Split('|').ToList();
                allData.Add(dataList);
            }
        }

allData 中的数据如下

           allData-->[0]-->[0]-'name1'
                           [1]-'sub'
                           [2]-'12'
                     [1]-->[0]-'name2'
                           [1]-'sub'
                           [2]-'15'  
                     [2]-->[0]-'name1'
                           [1]-'sub2'
                           [2]-'15'
    //and so on ....

我已经应用了分组依据,这让我可以按名称分组,但我无法弄清楚如何获得每个名称的标记总和?

      var grouped = allData.GroupBy(x => x[0]);

在此之后,我将所有匹配的名称归为一个,但现在如何获取该组的分数总和?有什么帮助会很好吗?

  Output should be  name1=27 and name2=15 and so on.

最佳答案

不确定你是想得到每组的总和还是总和。如果是总数,那么这应该可以解决问题

var sum = allData.Sum(x => Int32.Parse(x[2]));

如果是按键,则尝试以下操作

var all = allData
  .GroupBy(x => x[0])
  .Select(x => x.Sum(y => Int32.Parse(y[2]));

关于c# - 使用 linq 从列表中获取值的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22086692/

相关文章:

C# WMI 远程进程创建-GUI Hack

c# - 使用 C# 检测文件是否已被覆盖(移动和替换)

c# - LINQ 选择具有匿名类型的 Distinct

arrays - 如何用groovy语言将项目一一添加到数组中

Python;使用字典查找数字代码的因子。为什么这不起作用?

c# - 类属性,在内部可获取和可设置,但只能在外部获取

c# - EF CodeFirst 引用 DbContext 类

asp.net - 如何使用 linq 在 asp.net/vb.net 中过滤列表

c# - linq 按对象分组

java - 从 C# 中的 List 获取对象变量