using System; using System.Collections; namespace CS2026 { class ListMapping { delegate int Foo(int x); static ArrayList Map(Foo f, ArrayList list) { ArrayList result = new ArrayList(); foreach (int element in list) { result.Add(f((int)element)); } return result; } static int inc(int x) { return x + 1; } static int sqr(int x) { return x * x; } public static void Main() { Foo f = new Foo(inc); f += sqr; ArrayList aList = new ArrayList(); aList.Add(1); aList.Add(2); aList.Add(3); Console.WriteLine("--- Before Map---"); Console.Write("["); foreach (int element in aList) { Console.Write(element); Console.Write(", "); } Console.WriteLine("]"); ArrayList newList = Map(f, aList); Console.WriteLine("--- After Map---"); Console.Write("["); foreach (int element in newList) { Console.Write(element); Console.Write(", "); } Console.WriteLine("]"); Console.ReadLine(); } } }