我怎么能不在if语句中重复OR的整个部分?

时间:2014-02-11 00:55:26

标签: c# if-statement

我有这个:

if (button1.Text == "1" || button1.Text == "2" || button1.Text == "3" || button1.Text == "4")

如何将其转换为:

if (button.Text == "1" || "2" || "3" || 4")

所以我不必每次都重新输入button1.Text ==吗?

2 个答案:

答案 0 :(得分:9)

创建List<string>并将所有值存储在其中。

var numbers = new List<string>  { "1","2","3","4"};

然后使用Contains方法检查列表中是否存在button1.Text

if(numbers.Contains(button1.Text))

此外,您可以使用HashSet来更好更快地查找。但在这种情况下,它似乎没有必要,因为它没有产生任何显着差异。

答案 1 :(得分:1)

如果您使用一组硬编码的固定值,则执行所需操作的另一个选项是使用switch语句。

if (button1.Text == "1" || button1.Text == "2" || button1.Text == "3" || button1.Text == "4")
{
    //Some code
}

可以转入

switch(button1.Text)
{
    case "1":
    case "2":
    case "3":
    case "4":
        //Some code       
        break;
}

并且它与button1.Text语句链接在一起的速度一样快(或者只有一次访问||)。