我们可以使用arr.Sum()函数来求和.但如果它是一个数组数组.我们如何添加所有值.假设数据是数组/列表是 [[1,2,3],[3,4,5],[5,4,3]]
如何使用LINQ获得s1,所有第一个索引值的总和,s2,第二个索引值的总和等等.
如果你想在Linq的帮助下总结列的值:
int[][] source = new int[][] {
new int[] { 1, 2, 3},
new int[] { 3, 4, 5},
new int[] { 5, 4, 3},
};
int maxCol = source.Max(item => item.Length);
var colsSum = Enumerable
.Range(0, maxCol)
.Select(index => source.Sum(item => item.Length > index ? item[index] : 0))
.ToArray(); // let's meaterialize into an array
Run Code Online (Sandbox Code Playgroud)
测试:
Console.Write(string.Join(", ", colsSum));
Run Code Online (Sandbox Code Playgroud)
结果:
9, 10, 11
Run Code Online (Sandbox Code Playgroud)
总结行的值更容易:
// [6, 12, 12]
var linesSum = source
.Select(item => item.Sum())
.ToArray();
Run Code Online (Sandbox Code Playgroud)
如果你想总金额:
// 30
var total = source
.Select(item => item.Sum())
.Sum();
Run Code Online (Sandbox Code Playgroud)
要么
// 30
var total = source
.SelectMany(item => item)
.Sum();
Run Code Online (Sandbox Code Playgroud)