需要使用LINQ从多维数组求和

本文关键字:数组 求和 LINQ | 更新日期: 2023-09-27 18:11:32

我有以下代码:

var ccdata = dict1.Select(i => 
                          new object[] { i.Key, Int32.Parse(i.Value) }
                         ).ToArray();

我需要得到所有I值的和。请注意,这是一个多维对象数组。i.Key是一个字符串值,i.Value是一个需要求和的int值。

提前感谢

需要使用LINQ从多维数组求和

dic.Sum(i => Int32.Parse(i.Value)); // if i.Value is string instead of just int
dic.Sum(i => i.Value); // if string

ccdata.Sum(i => (int)i[1]); // if i[1] is object instead of just int
ccdata.Sum(i => i[1]); // if int

不清楚为什么要这样做,但很容易将它们相加…

int sum = ccdata.Sum(x => (int) x[1]);

如果你使用:

var ccdata = dict1.Select(i => new { i.Key, Value = Int32.Parse(i.Value) })
                  .ToArray();

这样就得到了编译时类型安全的和没有装箱的:

int sum = ccdata.Sum(x => x.Value);

(我假设您实际上出于其他原因需要ccdata。否则,请使用abatishchev的解决方案,并完全摆脱现有的代码。

Value位于内部数组的第二个位置。所以应该是这样的:

var sum = cdata.Sum(arr => (int)arr[1]);