Is there a shorthand syntax in C# to make this:
if ((x == 1) || (x==2) || (x==5) || (x==13) || (x==14))
... shorter? Something like (hypothetically)
if (x in {1, 2, 5, 13, 14})
I "feel" like it exists, I'm just coming up short mentally and Googly. In reality I have to test a bunch of enums frequently and it's just unreadable. I also hate to make a little helper function if the language supports it already.
Thanks in advance!
Edit
There are clever solutions involving lists... but I was hoping for a pure logical construct of some kind. If it doesn't exist, so be it. Thanks!
Try this:
if ((new[]{1, 2, 5, 13, 14}).Contains(x)) ...
Though I think the if statement is fine, and making code brief for breifness's sake is useless, here goes:
First approach, assuming you want to go the LINQ route:
if ((new[]{1,2,5,13,14}).Contains(x)){
}
Second approach, ArrayList
if ((new System.Collections.ArrayList(new[]{1,2,5,13,14})).Contains(x)){
}
Third approach, List:
if ((new System.Collections.Generic.List<Int32>(new[]{1,2,5,13,14})).Contains(x)){
}
But keep in mind all of these add more overhead (and really don't add much as far as readability, given the performance consideration).
oh, and working example of the above.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With