更高效的OR声明

时间:2013-12-20 01:42:51

标签: c# if-statement

我目前正在检查用户输入的C#代码:

if (e.KeyCode == Keys.Enter && InputTextbox.Text.Contains("good morning")
   ||
    e.KeyCode == Keys.Enter && InputTextbox.Text.Contains("morning"))

有没有其他方法可以使用|| “或”声明,以便它可以全部在一行?类似的东西:

if (e.KeyCode == Keys.Enter && InputTextbox.Text.Contains("good morning" || "morning")

4 个答案:

答案 0 :(得分:4)

var allowedText = new List<string> { "good morning", "morning" };

if (e.KeyCode == Keys.Enter && allowedText.Contains(InputTextbox.Text))
{
    // do something
}

答案 1 :(得分:4)

您可以使用要检查的值创建数组,然后检查数组是否包含TextBox值

string[] a = {"good morning" , "morning");

if (e.KeyCode == Keys.Enter && a.Contains(InputTextbox.Text))
{
}

答案 2 :(得分:1)

嗯,例如:如果你的InputTextBox是:“你好早上好”我不认为上面的答案会起作用,如果这是你所寻求的(根据给定的较小字符串检查一个明显更大的字符串),你不得不反过来检查:

if (e.KeyCode == Keys.Enter && (InputTextbox.Text.Contains("good morning") || InputTextbox.Text.Contains("morning"))

以为我会指出它,如果不是这样的话就会忽略这个答案。

答案 3 :(得分:0)

这就足够了:

if (e.KeyCode == Keys.Enter && InputTextbox.Text.Contains("morning"))
{
}

这是因为如果InputTextbox.Text.Contains("good morning")true,则InputTextbox.Text.Contains("morning")也必须为true