2014-02-06 4 views
-2

Я искал запроса, которые возвращают первый номер не доступен в спискеНайти первый свободный элемент

int[] list = new int[] { 1,4,2,5,6,7 }; 

для вышеприведенного примера я ожидаю иметь результата 3.

+1

BTW, это массив, а не 'Список '. –

ответ

2

Возможно, что-то вроде этого:

int result = Enumerable.Range(1, list.Length) 
         .Where(i => !list.Contains(i)) 
         .FirstOrDefault(); 

Это вернет 0, если list содержит все целые числа от 1 до n.

1
var first = Enumerable.Range(1, list.Max()).Except(list).First(); 
+2

Я бы использовал 'list.Count()', а не 'list.Max', поэтому вам не нужно беспокоиться о вычислении максимального значения. Также вы можете использовать 'First' вместо' Min', чтобы допускать короткое замыкание, так как первое значение всегда самое маленькое. – Servy

Смежные вопросы