C#拆分字符串并在If语句中使用

时间:2011-03-03 18:26:49

标签: c# string if-statement

有没有更优雅的方法来实现这一目标。

我有一个字符串,我想在if语句中单独拆分和使用。例如:

string people = "John;Joe;Jane;Mike";
string[] names = people.Split(';');

if(person == "John" || person == "Joe" || person == "Jane" || person == "Mike")
{
    ....
}
else
{
    ....
}

我猜这是一种更好的方法。

感谢。

5 个答案:

答案 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”