user160677
user160677

Reputation: 4303

Func<> delegate - Clarification

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 I am confused how to link the array "a" here.

Upvotes: 4

Views: 642

Answers (2)

bruno conde
bruno conde

Reputation: 48265

You can use Predicate and Array.FindAll.

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

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

Upvotes: 4

Marc Gravell
Marc Gravell

Reputation: 1062512

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>)

Upvotes: 11

Related Questions