Usualmente no recorres collections utilizando foreach? Quieres ahorrarte una par de lineas de codigo?
.NET Framework 2.0 provee una serie de nuevas features para hacer el codigo mas elegante.
Las clases System.Array y System.Collections.Generic.List proveen nuevos metodos apoyados en las nueva posibilidades que ofrece Generics.
El nuevo metodo .ForEach de estas clases nos permite ahorrarnos el codigo que antes teniamos que escribir para recorrer la collection utilizando el iterador.
Tradicionalmente, para iterar una coleccion debias escribir algo similar a esto:
System.Collections.Generic.List
...
foreach (System.Int32 number in numbers)
{
...
}
Utilizando System.Collections.Generic.List.ForEach se le puede pasar un delegate de tipo System.Action
El codigo anterior quedaria entonces asi:
System.Collections.Generic.List
...
numbers.ForEach(new System.Action
y hay que codificar el delegate searchNumbersDelegate:
private void searchNumbers(System.Int32 item)
{
if (item == 50)
System.Console.WriteLine("Found!");
}
Agregando Anonymous methods :
Pero el .NET framework 2.0 ofrece muchisimas mas posibilidades, como por ejemplo Anonymous methods.
Si utilizamos sobre el codigo anterior Anonymous Methods, podemos reducir el codigo a una sola linea:
numbers.ForEach(delegate(System.Int32 i){ if (i == 50) System.Console.WriteLine("Found!"); });
Links:
http://msdn.microsoft.com/msdnmag/issues/06/09/AdvancedBasics/
http://blog.csdn.net/coofucoo/archive/2006/07/19/940463.aspx