Rewriting an if
Yesterday I came across an if statement that looked something like this.
if (arg == "a" ||
arg == "b" ||
arg == "c" ||
arg == "d" ||
arg == "e")
{
Console.WriteLine(true);
}
An alternative way of writing this could look like this.
if (new [] { "a", "b", "c", "d", "e" }.Contains(arg))
Console.WriteLine(true);
I can’t remember in which Github repository I spotted this technique, but I’m sure it was written in something other than C#. I think it works for C# as well though. The language hardly gets in the way, although it would be nice to be able to drop the new.
This is one of these trivial things I tend to geek about. The condition fits on one line now, making the eyes do less work. Also adding a variable is less work; you don’t have to enter and indent accordingly. I think it’s a win in readability, size and maintenance.
But then I stop and wonder: how do you feel about this construct?