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))
{
}

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 关注
- 137 浏览
添加回答
举报