using System; [Serializable] public struct Range where T : IComparable { public T start; public T end; public Range(T start, T end) { if(start.CompareTo(end) > 0) { T tmp = start; start = end; end = tmp; } this.start = start; this.end = end; } public bool InRange(T value) { return value.CompareTo(start) >= 0 && value.CompareTo(end) <= 0; } public override string ToString() { return string.Format("[{0}, {1}]", start, end); } }