2010-03-25 2 views

ответ

12

Там нет методы доступна по умолчанию в BCL, но это прямо вперед, чтобы написать метод расширения, который имеет такое же поведение (аргумент проверки для краткости опущен)

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

Пример использования

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

благодарит за ваш быстрый ответ, это отлично работает. , но я хотел бы знать одно, что предикат работает как действие? predicated: x => Console.WriteLine (x.Name) –

+0

ранее я использовал вот так: statuses.ToList(). ForEach (x => x.IsHidden = true); и я думаю, что это была просто память. –

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 */);