你可以在IF语句中测试一系列值吗?

时间:2009-11-15 03:41:42

标签: c#

我想为数值0-32和99测试一个变量(“userChoice”)

4 个答案:

答案 0 :(得分:7)

if((userChoice >= 0 && userChoice <= 32) || userChoice == 99)
{
     // do stuff
}

答案 1 :(得分:7)

只是添加一种不同的思维方式,当我进行范围测试时,我喜欢使用 List&lt; T&gt; 包含方法。在你的情况下,它可能看似做作,但它看起来像:

        List<int> options = new List<int>(Enumerable.Range(0, 33));
        options.Add(99);
        if(options.Contains(userChoice)){
            // something interesting
        }

如果您在简单的范围内操作,它看起来会更清洁:

        if(Enumerable.Range(0, 33).Contains(userChoice)){
            // something interesting
        }

这有什么好处,它可以很好地测试一系列字符串和其他类型,而无需编写||一遍又一遍。

答案 2 :(得分:6)

if((userChoice >= 0 && userChoice < 33) || userchoice  == 99) {
...
}

答案 3 :(得分:4)

你是说这个吗?

if (userChoice >= 0 && userChoice <= 32 || userChoice == 99)