Как выполнить лямбда-выражение foreach для ObservableCollection <T>? - PullRequest
7 голосов
/ 26 марта 2010

Как мне выполнить foreach лямбда-выражение в ObservableCollection ?

Не существует метода foreach с ObservableCollection , хотя этот метод существует с List .

Есть ли способ расширения?

Ответы [ 3 ]

16 голосов
/ 26 марта 2010

В 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));
5 голосов
/ 26 марта 2010
public static class EnumerableExtensions
{
    public static void ForEach<T>(this IEnumerable<T> enumerable, Action<T> action)
    {
        foreach (var e in enumerable)
        {
            action(e);
        }
    }
}
1 голос
/ 12 сентября 2017
observableCollection.ToList().ForEach( item => /* do something */);
...