How can I write this OR statement better, allowing for growth in number of values?
var isNewFile = (progressID == 10 || progressID == 20 || progressID == 21);
I was thinking of this:
var isNewFile = progressID.Contains (10,20,21)
OR using Linq:
.Select
or .Contains
Any thoughts?
1 Answer 1
For something this simple, I think using the ||
is fine, however, if you need to use the list of acceptable integers more generally or avoid hard-coding the set in a single expression1, you can use something like this:
var newFileProgressIds = new[] { 10, 20, 21 };
var isNewFile = newFileProgressIds.Contains(progressID);
Or possibly use a HashSet<T>
:
var newFileProgressIds = new HashSet<int> { 10, 20, 21 };
var isNewFile = newFileProgressIds.Contains(progressID);
1: Of course, in these examples, the values are still hard coded in one place, but precisely how you generate the list is unimportant.
||
s alone for now. \$\endgroup\$