Как вы добавляете диапазоны?
Если диапазоны добавляются по порядку, вы можете просто сохранить конец последнего диапазона и сравнить его с началом добавляемого диапазона.
Если вы можете добавлять диапазоны в любом порядке, вы должны выполнить проверку при добавлении всех диапазонов.Сортируйте диапазоны в начале диапазона, затем прокрутите диапазоны и сравните конец диапазона с началом следующего диапазона.
update
Пример второго случая.Первый класс для хранения диапазонов:
public class Range {
public int From { get; private set; }
public int To { get; private set; }
public Range(int from, int to) {
From = from;
To = to;
}
}
Создание списка диапазонов:
List<Range> ranges = new List<Range>();
ranges.Add(new Range(15, 20));
ranges.Add(new Range(1, 10));
Проверка диапазонов:
ranges = ranges.OrderBy(r => r.From).ToList();
for (int i = 1; i < ranges.Count; i++) {
int to = ranges[i - 1].To;
int from = ranges[i].From;
int diff = to.CompareTo(from - 1);
if (diff < 0) {
Response.Write("Range from " + (to + 1).ToString() + " to " + (from - 1).ToString() + " is missing<br/>");
} else if (diff > 0) {
Response.Write("Range ending at " + to.ToString() + " overlaps range starting at " + from.ToString() + "<br/>");
}
}
Примечание. Код проверяет наличиеоба пробела в диапазонах и перекрывающихся диапазонах.Если перекрывающиеся диапазоны не являются проблемой, просто удалите деталь, которая проверяет diff > 0
.