例如,我们有一个int数组:
var array = new int[]{ 2147483647, 2147483647, 2147483647, 2147483647};
相对于上面所提供的示例,最简单的方法是计算数组条目 BUT的总和?
array.Sum()
结果是:
因为结果不再是int了。
最佳答案
由于数组中值的总和会溢出Int32.MaxValue
,因此您不得不将元素强制转换为长整型
var array = new int[]{ 2147483647, 2147483647, 2147483647, 2147483647};
var total = array.Sum(x => (long)x);
Console.WriteLine(total);
您会看到总变量的类型为Int64
Console.WriteLine(total.GetType());
关于c# - 如何计算结果超过Int32.Max值的int数组的总和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41515299/