2010-03-25 27 views

Respuesta

12

no hay un método disponible por defecto en el BCL pero es sencillo escribir un método de extensión que tiene el mismo comportamiento (comprobación de argumentos omite por razones de brevedad)

public static void ForEach<T>(this IEnumerable<T> enumerable, Action<T> action) { 
    foreach (var cur in enumerable) { 
    action(cur); 
    } 
} 

Caso de uso

ObservableCollection<Student> col = ...; 
col.ForEach(x => Console.WriteLine(x.Name)); 
+0

gracias por su rápida respuesta, esto está funcionando muy bien. pero me gustaría saber una cosa: ¿cómo funciona el predicado como acción? predicated: x => Console.WriteLine (x.Name) –

+0

anterior que estaba usando así, statuses.ToList(). ForEach (x => x.IsHidden = true); y creo que fue solo una pérdida de memoria. –

4
public static class EnumerableExtensions 
{ 
    public static void ForEach<T>(this IEnumerable<T> enumerable, Action<T> action) 
    { 
     foreach (var e in enumerable) 
     { 
      action(e); 
     } 
    } 
} 
0
observableCollection.ToList().ForEach(item => /* do something */); 
Cuestiones relacionadas