2010-03-25 8 views

risposta

12

non esiste alcun metodo disponibile per impostazione predefinita nella BCL ma è semplice per scrivere un metodo di estensione che ha lo stesso comportamento (argomento checking omessa per brevità)

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

Utilizzo caso

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

grazie per la vostra risposta rapida, funziona perfettamente. ma mi piacerebbe sapere una cosa su come funziona il predicato come azione? predicato: x => Console.WriteLine (x.Name) –

+0

prima usavo in questo modo, status.ToList(). ForEach (x => x.IsHidden = true); e penso che sia solo il consumo di 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 */); 
Problemi correlati