Поиск отсутствующих и перекрывающихся чисел в последовательностях

Допустим, у нас есть такая структура данных:

var sequences = new List<Tuple<int, int>>
                {
                    new Tuple<int, int>(1, 10),
                    new Tuple<int, int>(8, 101),
                    new Tuple<int, int>(102, 103),
                    new Tuple<int, int>(104, 104),
                    new Tuple<int, int>(110, 200)
                };

Я хотел бы получить два результата из этой коллекции:

  • Все отсутствующие числа (в этом примере: 105, 106, 107, 108 , 109)
  • Все перекрывающиеся числа (в этом примере: 8, 9, 10)

Я мог бы написать алгоритм с парой циклов и вспомогательных коллекций. Конечно, это сработает, но мне интересно, можно ли этого достичь с помощью LINQ и / или других более простых и коротких алгоритмов?

Изменить: Моя структура данных из приведенного выше примера представляет 5 последовательностей, первая из которых содержит числа от 1 до 10, вторая содержит числа от 8 до 101 и так далее ... Потому что в производстве последовательности могут быть намного больше (вверх на миллионы), они представлены не фактической коллекцией (например, списками со всеми числами), а кортежами, которые представляют минимальное и максимальное количество каждой последовательности.

6
задан sventevit 11 August 2011 в 10:15
поделиться