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

dha*_*erg 4 c#

我想测试数值0-32和99的变量("userChoice")

Oma*_*mar 7

if((userChoice >= 0 && userChoice <= 32) || userChoice == 99)
{
     // do stuff
}
Run Code Online (Sandbox Code Playgroud)


t3r*_*rse 7

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

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

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

        if(Enumerable.Range(0, 33).Contains(userChoice)){
            // something interesting
        }
Run Code Online (Sandbox Code Playgroud)

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


wil*_*ler 6

if((userChoice >= 0 && userChoice < 33) || userchoice  == 99) {
...
}
Run Code Online (Sandbox Code Playgroud)