在一个范围内查找一个值=c#中是否有这样的代码关键字

本文关键字:一个 代码 是否 关键字 查找 范围内 | 更新日期: 2023-09-27 18:21:23

在很多情况下,我们必须这样做:

if (someVariable == value1 || someVariable == value2 || someVariable == value1...)

如果我们能以以下方式做到这一点,那会很好吗:

if (someVariable in {value1, value2, value3...}

我们可以做这个

int[] arr = {value1, value2, value3....};
if (arr.Contains(someVariable)) ...

但在我看来,这仍然是压倒性的。为什么不支持这种语法,或者有,但我不知道?

在一个范围内查找一个值=c#中是否有这样的代码关键字

我认为这可能是最简洁的:

if (new int[] { 1, 2, 3 }.Contains(2))
{
    Console.WriteLine("bleh");
}

为此使用哈希集:

var hs = new HashSet<int>();
hs.Add(1);
hs.Add(2);
...
if(hs.Contains(x))
{
   //bingo!
}

怎么样

switch (someVariable)
{
    case value1:
    case value2:
    case value3:
    case value12345:
        doSomething();
        break;
    default:
        doSomethingElse();
        break;
}

使用HashSet的Contains方法。我不确定这是如何提高代码清晰度的,因为您仍然必须检查所有三个条件。