private void AddNewInterval(int value) { _Count = -1; var interval = new IntervalLookup <TLookup>(value); this.Intervals.Add(interval); }
private void AddNewInterval(int value, int ix) { _Count = -1; var interval = new IntervalLookup <TLookup>(value); this.Intervals.Insert(ix, interval); }
public void AddInterval(IntervalLookup <TLookup> interval) { _Count = -1; if (LastInterval != null) { if (LastInterval.End <= interval.End && LastInterval.End >= interval.Start) { LastInterval.End = interval.End; return; } } this.Intervals.Add(interval); }
public int SearchByStartIndexBefore(IntervalLookup <TLookup> interval, int startix) { var ix = startix; var c = this.Intervals.Count; var tix = this.Intervals.BinarySearch(startix, c - startix, interval, IntervalListLookup <TLookup> .startcomparer); if (tix > c) { ix = c - 1; } if (tix < 0) { ix = ~tix; ix = ix > 0 ? ix - 1 : ix; } if (ix < startix) { ix = startix; } return(ix); }