首页 > 解决方案 > 检查数字是否在范围内的最快方法

问题描述

除了检查数字是否在范围内之外,最简单的方法是什么

if (Enumerable.Range(1,100).Contains(number))
//true

if (x >= 1 && x <= 100)
//true

这些方法?也许更有效的东西?

标签: c#

解决方案


没有什么比第二种选择更有效了。你可以写一个扩展:

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

}

推荐阅读