Func<>委托 - 澄清

4

当给定一个数组:

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

如果我希望使用LINQ返回偶数,请使用如下代码:

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

如果我使用C#2.0和strictly func<> delegate,该如何解决呢?
我尝试过:
Func<int, bool> func = delegate(int val) { return val % 2 == 0; };

但是我很困惑如何在这里链接数组“a”。
2个回答

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

(请注意,这里使用了Predicate<int>,它与Func<int,bool>具有相同的签名。)


4

你可以使用PredicateArray.FindAll

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接