为了账号安全,请及时绑定邮箱和手机立即绑定

检查数字是否在范围内的最快方法

检查数字是否在范围内的最快方法

C#
慕森王 2021-06-30 10:00:06
检查一个数字是否在一个范围内的最简单方法是什么,除了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))

{


}


查看完整回答
反对 回复 2021-07-03
?
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;

    }


查看完整回答
反对 回复 2021-07-03
  • 2 回答
  • 0 关注
  • 133 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信