Найти первый бесплатный идентификатор

1
задан Domenico Formoso 24 February 2019 в 08:44
поделиться

2 ответа

Это может дать вам все пробелы в вашей таблице

var nums= (new List<int> (){1,2,3,25,4,5,6,7,8, 12, 15,21,22,23}).AsQueryable();

nums
  .OrderBy(x => x)
  .GroupJoin(nums, n=> n + 1, ni => ni, (o,i)=> new {o, i})
  .Where(t=> !(t.i is IGrouping<int, int>))
  .Dump();

.Net Fiddle

0
ответ дан Derviş Kayımbaşıoğlu 24 February 2019 в 08:44
поделиться

Из Можно ли использовать LINQ для поиска пропусков в отсортированном списке? :

var strings = new string[] { "7", "13", "8", "12", "10", "11", "14" };
var list = strings.OrderBy(s => int.Parse(s));
var result = Enumerable.Range(list.Min(), list.Count).Except(list).First(); // 9

По сути, упорядочить список. Затем создайте массив последовательных чисел (1,2,3...) от минимума до максимума. Проверьте пропущенные значения в списке и возьмите первое. Это первое пропущенное число.

0
ответ дан KyleMit 24 February 2019 в 08:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: