我使用这个是正确的方式吗?据我了解,以下检查应该是错误的:
int myVal = 37;
if (Enumerable.Range(0, 10).Contains(myVal))
// Do something
else if (Enumerable.Range(11, 33).Contains(myVal))
// Do somethiong else
但我似乎遇到了//Do somethiong else
被执行的情况。我可以这样使用Enumerable.Range
吗?
答案 0 :(得分:17)
Enumerable.Range
的签名提供了线索:
public static IEnumerable<int> Range(
int start,
int count
)
第一个参数叫做 start ;第二个称为 count 。因此,您的第二个调用将返回从11开始的33个值,其中包括37个。
答案 1 :(得分:10)
如果这个特定的例子,以这种方式创建枚举的效率很低,只是为了检查一个值是否在特定范围内。 if (x < y)
可能更好。
答案 2 :(得分:1)
这将导致检查每个值,并且有点混乱,为什么不这样做:
int myVal = 37;
if (myVal >= 0 && myVal <= 10)
// Do something
else if (myVal <= 33)
// Do somethiong else