如何在 Text.Contains 中指定 "OR",C#?
How to specify "OR" in Text.Contains, C#?
如果我使用:
if (MainTextBox.Text.Contains("red" + "blue"))
那么文本框必须同时包含这两个词。但是我怎样才能指定文本框包含其中之一呢?
如果你想检查文本框是否包含红色or
蓝色,你可以写
if (MainTextBox.Text.Contains("red") || MainTextBox.Text.Contains("blue"))
否则,如果文本框必须同时包含红色 and
蓝色,您可以写
if (MainTextBox.Text.Contains("red") && MainTextBox.Text.Contains("blue"))
您应该分别检查 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)");
您可以使用
if (MainTextBox.Text.Contains("red") || MainTextBox.Text.Contains("blue"))
您还可以使用 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
}
如果我使用:
if (MainTextBox.Text.Contains("red" + "blue"))
那么文本框必须同时包含这两个词。但是我怎样才能指定文本框包含其中之一呢?
如果你想检查文本框是否包含红色or
蓝色,你可以写
if (MainTextBox.Text.Contains("red") || MainTextBox.Text.Contains("blue"))
否则,如果文本框必须同时包含红色 and
蓝色,您可以写
if (MainTextBox.Text.Contains("red") && MainTextBox.Text.Contains("blue"))
您应该分别检查 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)");
您可以使用
if (MainTextBox.Text.Contains("red") || MainTextBox.Text.Contains("blue"))
您还可以使用 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
}