例如,我们有一个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/

10-11 16:20