namespace Predicatefun { class Program { public List<int> Numbers = new List<int>(); static void Main(string[] args) { Program p = new Program(); p.PopulateList(); List<int> result = p.Numbers.FindAll(new Predicate<int>(p.EvenNumbers)); result.ForEach(delegate(int i) { Console.WriteLine("Element number {0} matches predicate criteria", i); }); Console.WriteLine("\nMatches found {0}", result.Count); } private bool EvenNumbers(int i) { return (i % 2 == 0); } private void PopulateList() { for (int i = 1; i <= 100; i++) { Numbers.Add(i); } } } }