Library of operations for interval type from Interval Library. There are operations of comparisons for low and upper boundary and for entry interval, operation to check interval on containing point etc.
varopenInterval=newInterval<int>(lowerBound:newOpenLowerBound<int>(0),upperBound:newOpenUpperBound<int>(10));openInterval.Contains(point:5,comparer:Comparer<int>.Default)// => true
openInterval.Contains(point:11,comparer:Comparer<int>.Default)// => falsevarinterval=newInterval.Interval<string>(lowerBound:newOpenLowerBound<string>("a"),upperBound:newOpenUpperBound<string>("z"));interval.Contains(point:"B",comparer:StringComparer.Ordinal)// => false
interval.Contains(point:"B",comparer:StringComparer.OrdinalIgnoreCase);// => falsenewInterval<int>(lowerBound:newClosedLowerBound<int>(1),upperBound:newClosedUpperBound<int>(2)).GetBoundariesPoints();// -> [1,2]You can compare deferent types of lower or upper boundary
newLowerBoundComparer<int>(comparer:Comparer<int>.Default).Compare(left:newClosedLowerBound<int>(10),right:newClosedLowerBound<int>(11));// -> 1The same for upper boundary
newUpperBoundComparer<int>(comparer:Comparer<int>.Default).Compare(left:newClosedUpperBound<int>(10),right:newClosedUpperBound<int>(11));// -> 1varintervalA=newInterval.Interval<int>(lowerBound:newClosedLowerBound<int>(0),upperBound:newClosedUpperBound<int>(10));varintervalB=newInterval.Interval<int>(lowerBound:newClosedLowerBound<int>(1),upperBound:newClosedUpperBound<int>(9));newIntervalComparer<int>(comparer:Comparer<int>.Default).Compare(left:intervalA,right:intervalB);// -> -1