有没有更优雅的方法来实现这一目标。
我有一个字符串,我想在if语句中单独拆分和使用。例如:
string people = "John;Joe;Jane;Mike";
string[] names = people.Split(';');
if(person == "John" || person == "Joe" || person == "Jane" || person == "Mike")
{
....
}
else
{
....
}
我猜这是一种更好的方法。
感谢。
答案 0 :(得分:6)
if(names.Contains(person)) { ... }
答案 1 :(得分:2)
string people = "John;Joe;Jane;Mike";
string[] names = people.Split(';');
if(names.Contains(person))
{
....
}
else
{
....
}
Contains<T>
是IEnumerable<T>
的扩展方法(并且数组是IEnumerable<T>
),因此您可以在Split
的结果上使用它来检查它是否包含你正在寻找的字符串。
答案 2 :(得分:1)
这样就可以了:
if(names.Contains(person))
答案 3 :(得分:1)
string people = "John;Joe;Jane;Mike";
List<string> names = new List<string>(people.Split(';'));
if(names.Contains(person))
{
....
}
else
{
....
}
收藏是你的朋友:)
答案 4 :(得分:0)
这样做:
string people = ";John;Joe;Jane;Mike;";
string findPerson = "Joe";
if (people.contains(String.Format(";{0};", findPerson)) {
... it's found...
} else {
... it's not found ....
}
请注意,我将分隔符添加到原始字符串的开头和结尾。此外,我们将分隔符附加到findPerson变量的开头和结尾。这可以确保我们不会遇到部分匹配。例如,在“christoph”中找到“chris”