/// <summary> /// Returns true if the value exists within the defined range. /// </summary> /// <param name="value">The value to verify is in the range.</param> /// <returns> /// <exception cref="ArgumentNullException"><paramref name="value"/> is null.</exception> public static bool Contains <T>( this IRange <Boundary <T> > range, T value) where T : IComparable <T> { if (range is null) { throw new ArgumentNullException(nameof(range)); } range.AssertIsValidRange(); if (IsNaN(value)) { return(false); } var low = value.CompareTo(range.Low); if (low < 0) { return(false); } if (low == 0) { return(range.Low.Inclusive); } var high = value.CompareTo(range.High); return(high < 0 || high == 0 && range.High.Inclusive); }