我正在尝试使用 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/