2009-11-10 1 views
4

Lorsqu'un tableau est donné:Func <> délégué - Précision

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

et si je veux retourner les nombres pairs LINQ

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

Si je devais utiliser C# 2.0 et strictement func <> déléguer quel est le moyen de le résoudre?

J'ai essayé:

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

mais je suis confus comment lier le tableau "a" ici.

Répondre

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

(noter que ce utilise Predicate<int>, qui est la même signature que Func<int,bool>)

+1

+1 J'ai oublié cette méthode. – Noldorin

4

Vous pouvez utiliser Predicate et Array.FindAll.

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

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