/// <summary> /// Returns a random integer number between min and max. /// </summary> public static int Range(int min, int max, EInclusion mode) { if (!mode.Minor()) { min++; } if (!mode.Major()) { max--; } return(Int(min, max)); }
/// <summary> /// Returns values between min and max. /// </summary> public static K Outside <T, K>(IRange <T> range, ICollection <T> values, EInclusion mode = EInclusion.Inclusive) where T : IComparable, IComparable <T> where K : ICollection <T>, new() { K inside = new K(); foreach (T value in values) { if (!Between(range.Min, range.Max, value)) { inside.Add(value); } } return(inside); }
/// <summary> /// /// </summary> public static bool Major <T>(this EInclusion inclusion, T max, T value) where T : IComparable, IComparable <T> { int comparison = max.CompareTo(value); if (comparison < 0) { return(false); } if (comparison > 0) { return(true); } return(inclusion.Major()); }
/// <summary> /// Returns if a value is between a range. /// </summary> public static bool Between <T>(IRange <T> range, T value, EInclusion mode = EInclusion.Inclusive) where T : IComparable, IComparable <T> { return(mode.Minor(range.Min, value) && mode.Major(range.Max, value)); }
/// <summary> /// Returns if a value is between min and max. /// </summary> public static bool Between <T>(T min, T max, T value, EInclusion mode = EInclusion.Inclusive) where T : IComparable, IComparable <T> { return(mode.Minor(min, value) && mode.Major(max, value)); }
/// <summary> /// /// </summary> public static bool Major(this EInclusion inclusion) { //return inclusion == EInclusion.Inclusive || inclusion == EInclusion.Exclusive_Inclusive; return(((int)inclusion | 2) == 3); }
/// <summary> /// /// </summary> public static bool Minor(this EInclusion inclusion) { //return inclusion == EInclusion.Inclusive || inclusion == EInclusion.Inclusive_Exclusive; return(((int)inclusion | 1) == 3); }