C# Split String and Use in If Statement
Is there a more elegant way to accomplish this.
I have a string, where I would like to split and use individually in an i开发者_运维问答f statement. For example:
string people = "John;Joe;Jane;Mike";
string[] names = people.Split(';');
if(person == "John" || person == "Joe" || person == "Jane" || person == "Mike")
{
....
}
else
{
....
}
There's a better way of doing this, I guess.
Thanks.
if(names.Contains(person)) { ... }
string people = "John;Joe;Jane;Mike";
string[] names = people.Split(';');
if(names.Contains(person))
{
....
}
else
{
....
}
Contains<T>
is an extension method of IEnumerable<T>
(and an array is an IEnumerable<T>
) so you can use it on the result of Split
to check if it contains the string you are looking for.
string people = "John;Joe;Jane;Mike";
List<string> names = new List<string>(people.Split(';'));
if(names.Contains(person))
{
....
}
else
{
....
}
Collections are your friends :)
This would do it:
if(names.Contains(person))
Do this:
string people = ";John;Joe;Jane;Mike;";
string findPerson = "Joe";
if (people.contains(String.Format(";{0};", findPerson)) {
... it's found...
} else {
... it's not found ....
}
note that I added the delimiters to the beginning and ending of the original string. Also, we're appending the delimiters to the beginning and end of the findPerson variable. This ensures that we don't hit on a partial match. For example finding "chris" in "christoph"
精彩评论