查找

2014-02-06 23 views
-2

我找查詢第一個自由元素,其返回第一個編號無法在列表查找

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

對於上面的例子,我希望有結果3

+1

順便說一句,這是一個數組,而不是'List '。 –

回答

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