FUNC<>代表 - 澄清

时间:2009-11-10 17:25:42

标签: c# delegates c#-2.0 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; };

但我很困惑如何在这里链接数组“a”。

2 个答案:

答案 0 :(得分:11)

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

(请注意,这会使用Predicate<int>,这与Func<int,bool>

的签名相同

答案 1 :(得分:4)

您可以使用PredicateArray.FindAll

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

Array.FindAll<int>(a, func);