2016-08-13 60 views
1

如何使用LINQ的Contains()或Any()函數檢查下面顯示的數組或列表是否包含給定的值?如何使用ANY列表,從整數的數組創建?

這裏是我的代碼:

if(array3.Any(x=> x == 2)) 

或者

if(tyest.Any(x=> x == 2)) 

注:

int[] array3 = { 1, 2, 3, 4, 5, 6 }; 
List<int> tyest = array3.ToList<int>(); 
if (tyest.Any(2)) { 

} 

回答

3

Any當在內存中集合執行接受Func<T, bool>作爲參數

  • 您不需要轉換爲列表即可使用Any,它適用於任何IEnumerable<T>(包括通用數組和泛型列表)。

理解一個拉姆達:

(x) => x == 2 

相當於:

private bool filterFunction(int x) 
{ 
    return x == 2; 
} 

Any LINQ的擴展方法循環通過IEnumerable的所有元件和每個元件上執行lambda函數,如果它發現一個元素在執行該函數時返回true,那麼Any返回true,否則返回false;

+0

倒向選民。謹慎解釋? – user3185569

+0

我認爲你的問題可能是你的回答比被問到的要多。我試圖刻意保留我的答案,並且只回答所要求的問題,因爲它可以幫助提問者獲得他們的解決方案並加快進度。還有大量的編輯往往會導致我看到很多倒票 – War

+0

@戰爭這是否正確回答投票的理由? – user3185569

6

使用任何需要,它可以檢查對給定數組中的每個元素的表達,試試這個,而不是...

if (tyest.Any(i => i == 2)) { 

} 

..這是通過對每個元素運行在表達式內的任何()直到找到一個導致「i == 2」爲真的結果。