如何在ObservableCollection <T>上执行foreach lambda表达式?

Zai*_*ikh 8 c# silverlight observablecollection

如何foreach在ObservableCollection <T>上执行lambda表达式?

foreach虽然此方法与List <T>一起存在,但是没有使用ObservableCollection <T>的方法.

有没有可用的扩展方法?

Jar*_*Par 18

在BCL中默认没有可用的方法,但是直接编写具有相同行为的扩展方法(为简洁省略了参数检查)

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

用例

ObservableCollection<Student> col = ...;
col.ForEach(x => Console.WriteLine(x.Name));
Run Code Online (Sandbox Code Playgroud)


PL.*_*PL. 5

public static class EnumerableExtensions
{
    public static void ForEach<T>(this IEnumerable<T> enumerable, Action<T> action)
    {
        foreach (var e in enumerable)
        {
            action(e);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)