Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 禁用使用Array.Sum检查溢出_C#_Linq_Overflow - Fatal编程技术网

C# 禁用使用Array.Sum检查溢出

C# 禁用使用Array.Sum检查溢出,c#,linq,overflow,C#,Linq,Overflow,有一个问题要求用户编写代码来查找数组的和 using System; using System.Linq; public class Program { public static int Puzzle(int[] a) { return a.Sum(); } } Pex希望它可以通过{-1840512878,-2147418112}并返回下溢的数字307036306,但是LINQ方法Array.Sum()检查溢出 我不能在.Sum()的方法调用中使用unchecked关键字

有一个问题要求用户编写代码来查找数组的和

using System;
using System.Linq;

public class Program {
  public static int Puzzle(int[] a) {
    return a.Sum();
  }
}
Pex希望它可以通过{-1840512878,-2147418112}并返回下溢的数字307036306,但是LINQ方法Array.Sum()检查溢出

我不能在.Sum()的方法调用中使用unchecked关键字,因为加法发生在方法内部


是否有任何方法可以禁用使用Array.Sum()检查下溢/溢出?

如果存在溢出,则所有重载的规范都将抛出
溢出异常。这是不可配置的,这是设计的。不要用那种方法

您仍然可以在此处使用LINQ,并改用该方法,而不进行检查:

public static int Puzzle(int[] a)
{
    return a.Aggregate((sum, i) => unchecked(sum + i));
}

否则手动执行。

的可能重复项不是默认值吗?