tags:

views:

97

answers:

2

When an array is given:

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

and if i wish to return the even numbers

using LINQ

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

if i were to use C#2.0 and strictly func<> delegate what is the way to solve it?

I tried :

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

but confused how to link the array "a" here.

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

(note this uses Predicate<int>, which is the same signature as Func<int,bool>)

Marc Gravell
+1 I forgot about this method.
Noldorin
+1  A: 

You can use Predicate and Array.FindAll.

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

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