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

时间:2010-03-25 21:12:25

标签: c# silverlight observablecollection

如何在ObservableCollection&lt; T&gt;上执行foreach lambda表达式?

没有foreach方法与ObservableCollection&lt; T&gt;虽然此方法与List&lt; T&gt;。

一起存在

是否有可用的扩展方法?

3 个答案:

答案 0 :(得分:16)

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

答案 1 :(得分:5)

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

答案 2 :(得分:1)

observableCollection.ToList().ForEach( item => /* do something */);