检查一个数字是否在一个范围内的最简单方法是什么,除了if (Enumerable.Range(1,100).Contains(number))//trueif (x >= 1 && x <= 100)//true这些方式?也许更有效的东西?
2 回答
青春有我
TA贡献1784条经验 获得超8个赞
没有什么比第二种选择更有效的了。你可以写一个扩展:
public static class NumberExtensions
{
public static bool IsWithinRange<T>(this T number, T rangeStart, T rangeEnd) where T : IComparable<T>
{
return number.CompareTo(rangeStart) >= 0 && number.CompareTo(rangeEnd) <= 0;
}
}
现在代码可读且高效:
if (x.IsWithinRange(1, 100))
{
}
Cats萌萌
TA贡献1805条经验 获得超9个赞
第一个(LINQ)选项非常低效。第二个选项(只需检查不等式运算符)就可以了。在有多个范围的一般情况下,您可以使用新的switch改进:
switch(number)
{
case var n when n >= 1 && n <= 100:
// ...
break;
case var n when n > 100:
// ...
break;
default:
// ...
break;
}
- 2 回答
- 0 关注
- 133 浏览
添加回答
举报
0/150
提交
取消