c# - 匹配数组中的整数

标签 c# arrays if-statement int

我有以下整数,我想用 if 语句检查它的值。

int myInt = 3;

我试过这段有效的代码,但我不喜欢一遍又一遍地写变量名。

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

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

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

但这行不通,因为 |不是正确的运算符,因为类型不匹配。

然后我尝试了这个,它也工作得很好,但我仍然不喜欢必须声明一个额外的数组。

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

问题是:

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

最佳答案

你的问题是

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

但确实应该是

是否有一个运算符可以满足我正在尝试完成的任务,而无需每次

声明一个额外的数组

拥有该数组一次(并初始化一次)没有错,但每次都分配它(并通过扩展 GC 对它进行处理)有很多错误。所以你需要声明一个数组一次,比如

private static int matchArray[] = new int[] { 0, 2, 3, 4 };

以后就是

if (matchArray.Contains(myInt)) ...

编辑

如果您的匹配数组很小,无论如何请使用 @JohnField 的答案,而不是这个 - 我同意!

关于c# - 匹配数组中的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28596629/

相关文章:

JavaScript - 满足 if/elseif 条件时更改类

c - if 语句选择了错误的条件

c# - input submit 有两种类型的值

c# - 检测到对类型 System.Web.IHttpHandler 覆盖现有映射的尝试

c# - 您会考虑在这里更改接口(interface)或使用适配器吗?

python - 快速获得 NumPy 数组反向的方法

c++ - 如何在 for 循环中进行错误捕获

c# - 使用 BuildEngine 传递 MsBuild 命令行参数

c++ - “如何使用 C++ 将字符串的第一个和最后一个索引返回到 vector 中?

javascript - 将两个变量设置为同一 dom 元素时,jquery 语句未评估为 true