我需要检查int []是否只包含某些值(在本例中为0s和1s),如果不包含则抛出异常.
有没有比以下任何一种解决方案更有效的方法?
简单(但O(n)):
for(int n = 0; n < myArray.Length; n++)
if(!(myArray[n] == 0 || myArray[n] == 1))
throw new Exception("Array contains invalid values");
Run Code Online (Sandbox Code Playgroud)
使用Where():
if(myArray.Where(n => !(n==1 || n==0)).ToArray().Length > 0)
throw new Exception("Array contains invalid values");
Run Code Online (Sandbox Code Playgroud) 尝试在没有调试器的情况下运行C#控制台应用程序时(即Ctrl+F5)终端中没有输出.当使用调试器(即just F5)运行时,程序按预期执行.
我做了一个快速测试项目,以确保它不仅仅是我的项目:
namespace Test
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Test");
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用调试器运行,"Test"输出到控制台,没有它,没有.我不知道我改变了什么,因为(我原来的)程序在没有调试器之前运行正常