例如我们有一个 int 数组:
var array = new int[]{ 2147483647, 2147483647, 2147483647, 2147483647};
计算数组条目总和的最简单方法是什么,但是对于上面提供的例子?
array.Sum()
结果是:
算术运算导致溢出
因为结果不再是 int 了..
因为数组中的值的总和溢出了Int32.MaxValue
你被迫将你的元素投射到很长的位置
var array = new int[]{ 2147483647, 2147483647, 2147483647, 2147483647};
var total = array.Sum(x => (long)x);
Console.WriteLine(total);
并且可以看到total变量是Int64类型
Console.WriteLine(total.GetType());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)