Alex Rivera | Logout

Can I have an if statement like this? If Test = "test1" or "test2" or "test3" without going the long way?

Asked 2010-07-06T17:07:32.830
9

Do i have to set my if statement as

if(Test == "test1" || Test == "test2" || Test == "test3")
{
    //do something
}

Is there a way to have something like

if(Test == "test1":"test2":"test3")
c#
Edit
Report

1 Answer

17

Yes.

if (new [] { "test1", "test2", "test3" }.Contains(Test))

You can even write an extension method:

public static bool IsAnyOf<T>(this T obj, params T[] values) { 
    return values.Contains(T); 
}

if (Test.IsAnyOf("test1", "test2", "test3"))

For optimal performance, you can make overloads that take two or three parameters and don't use arrays.

answered 2010-07-06T17:08:57.837

Your Answer