如果我使用:
if (MainTextBox.Text.Contains("red" + "blue"))
然后,文本框必须包含这两个术语。但是,如何指定文本框以包含其中一个?
答案 0 :(得分:10)
如果您想检查文本框是否包含红色or
蓝色,您可以写
if (MainTextBox.Text.Contains("red") || MainTextBox.Text.Contains("blue"))
否则,如果文本框必须包含红色and
蓝色,则可以编写
if (MainTextBox.Text.Contains("red") && MainTextBox.Text.Contains("blue"))
答案 1 :(得分:2)
您应该单独检查red
和blue
string text = MainTextBox.Text;
bool containsAny = text.Contains("red") || text.Contains("blue");
bool containsBoth = text.Contains("red") && text.Contains("blue");
或者您可以使用正则表达式
bool containsAny = Regex.IsMatch(text, "(red|blue)");
bool containsBoth = Regex.IsMatch(text, "(?=.*red)(?=.*blue)");
答案 2 :(得分:1)
您可以使用
if (MainTextBox.Text.Contains("red") || MainTextBox.Text.Contains("blue"))
答案 3 :(得分:1)
而不是||
(或&&
)您也可以使用String.Contains
和LINQ:
string[] itemsToContain = { "red", "blue" };
if (itemsToContain.All(MainTextBox.Text.Contains))
{
// here the TextBox contains both terms as a substring
}
if (itemsToContain.Any(MainTextBox.Text.Contains))
{
// here the TextBox contains one of both as a substring
}
这是一个忽略此案例的版本,因此如果它Red
或red
无关紧要:
if (itemsToContain.All(s => MainTextBox.Text.IndexOf(s, StringComparison.CurrentCultureIgnoreCase) >= 0))
{
// here the TextBox contains both terms as a substring ignoring the case
}