2009-11-10 28 views
4

當一個陣列被下式給出:Func鍵<>代表 - 澄清

int[] a={1,3,4,5,67,8,899,56,12,33} 

,如果我希望使用LINQ

var q=a.where(p=>p%2==0) 

如果我是使用C#2.0和嚴格返回偶數func <>委託是如何解決它的?

我想:

Func<int, bool> func = delegate(int val) { return val % 2 == 0; }; 

,但我很困惑如何在陣列鏈接「一」在這裏。

回答

11
int[] q = Array.FindAll<int>(a, delegate(int p) { return p % 2 == 0; }); 

(注意,這個使用Predicate<int>,這是相同的簽名Func<int,bool>

+1

+1我忘了這種方法。 – Noldorin 2009-11-10 17:32:32

4

您可以使用PredicateArray.FindAll

Predicate<int> func = delegate(int val) { return val % 2 == 0; }; 

Array.FindAll<int>(a, func); 
相關問題