CLR v2.0 Array.ForEach and List.ForEach
Consider an array of strings:
string[] strs={"uno", "dos", "tres"};
Consider a method like:
static void shows(string s){ Console.WriteLine(s);}
Invoking that method for each string in the array, one way:
foreach(string s in strs) shows(s);
There is need to invoke different methods other than 'shows' for the entire array, then consider:
delegate void process_string(string s);void process_array(string[] strs, process_string amethod){ foreach(string s in strs) amethod(s);}
Used this way:
string[] strs={"uno", "dos", "tres"};process_array(strs,new process_string(shows));
The above is good CLR v1.1 code, with CLR v2.0 consider:
string[] strs={"uno", "dos", "tres"};Array.ForEach<string>(strs,new Action<string>(shows));
Ok with arrays, but also with generic List collection:
System.Collections.Generic.List<string> strs=new System.Collections.Generic.List<string>();strs.Add("one");strs.Add("two");strs.Add("three");strs.ForEach(new Action<string>(shows));
If shows is not invoked from any other place, consider:
strs.ForEach(new Action<string>(delegate(string s) { w.WriteLine(s); }));
One method (process_array) or two (shows) and one delegate (process_string) saved.