我有以下整数,我想用 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/