匹配数组中的整数

Ian*_*.CO 3 c# arrays int if-statement

我有以下整数,我想用if语句检查值.

int myInt = 3;
Run Code Online (Sandbox Code Playgroud)

我尝试了这个有效的代码,但我不喜欢一遍又一遍地编写变量名.

if (myInt == 0 || myInt == 2 || myInt == 3 || myInt == 4)
{
    Debug.WriteLine("Match");              
}
else
{
    Debug.WriteLine("No Match");
}
Run Code Online (Sandbox Code Playgroud)

为了展示我想要的理想,我尝试过这样的事情:

if (myInt == (0 | 2 | 3 | 4))
{
    Debug.WriteLine("Match");
}
else
{
    Debug.WriteLine("No Match");
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为| 由于存在类型不匹配,因此不是正确的运算符.

然后我尝试了这个,它也工作正常,但我仍然不喜欢声明一个额外的数组.

if ((new int[] { 0, 2, 3, 4 }).Contains(myInt))
{
    Debug.WriteLine("Match");
}
else
{
    Debug.WriteLine("No Match");
}
Run Code Online (Sandbox Code Playgroud)

问题是:

是否有一个运算符可以满足我想要完成的任务而无需声明一个额外的数组或一遍又一遍地询问相同的变量名称|| 运营商?

Eug*_*eck 6

你的问题是

是否有一个运算符可以满足我想要完成的任务而无需声明一个额外的数组

但它确实应该是

是否有一个运算符可以满足我想要完成的任务而不必每次都声明一个额外的数组

拥有该数组一次(并初始化一次)没有任何问题,但是每次分配它(并通过扩展GCing它)都有很多错误.所以你需要声明一次数组,比如说

private static int matchArray[] = new int[] { 0, 2, 3, 4 };
Run Code Online (Sandbox Code Playgroud)

以后只是

if (matchArray.Contains(myInt)) ...
Run Code Online (Sandbox Code Playgroud)

编辑

如果你的匹配数组很小,无论如何使用@JohnField的答案而不是这个 - 我的立场得到了纠正!