Как получить блок неиспользованных идентификаторов в таблице с LTS? - PullRequest
2 голосов
/ 16 марта 2010

Я опустил этот вопрос: SQL-запрос для поиска отсутствующих порядковых номеров . Я хочу добиться того же, но с помощью LINQ to SQL.

Напомним: У меня есть таблица с идентификаторами, такими как 1,2,4,5,10,11,12,15, [...]. Я хочу неиспользованные идентификаторы 3,6,7,8,9,13,14, [...].

Можем ли мы создать временную последовательность и использовать ту же логику, что и в T-SQL?

Я пытался создать временный массив целых чисел как временную последовательность, он работает, но, поскольку идентификаторы в таблице достигают 900 000 и более, я не думаю, что это оптимальный способ сделать это. *

1 Ответ

1 голос
/ 22 марта 2011

Учитывая вашу таблицу целочисленных значений "strs", это должно получить недостающие целочисленные значения:

var missing = from i in Enumerable.Range(strs.Min(),strs.Max())
              where !strs.Contains(i)
              select i; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...