First example(inline implementation, using lambda-expressions): System.Collections.ArrayList array = new System.Collections.ArrayList { 1, 2, 3, 4 }; IEnumerable<int> evenNumbers = array.Cast<int>().Where(r => r % 2 == 0); evenNumbers.ToList().ForEach ( (i) => { Console.Write(i+" "); } ); Second example(inline implementation, using delegate keyword): System.Collections.ArrayList array = new System.Collections.ArrayList { 1, 2, 3, 4 }; IEnumerable<int> evenNumbers = array.Cast<int>().Where(r => r % 2 == 0); evenNumbers.ToList().ForEach ( delegate(int i) { Console.Write(i+" "); } ); Third example: public Example() { System.Collections.ArrayList array = new System.Collections.ArrayList { 1, 2, 3, 4 }; IEnumerable<int> evenNumbers = array.Cast<int>().Where(r => r % 2 == 0); evenNumbers.ToList().ForEach(MyMethod); } private void MyMethod(int i) { Console.Write(i + " "); }