我有以下代码:
var ccdata = dict1.Select(i =>
new object[] { i.Key, Int32.Parse(i.Value) }
).ToArray();
我需要得到所有I值的和。请注意,这是一个多维对象数组。i.Key是一个字符串值,i.Value是一个需要求和的int值。
提前感谢
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]);