代码之家  ›  专栏  ›  技术社区  ›  Zain Shaikh

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

  •  6
  • Zain Shaikh  · 技术社区  · 15 年前

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

    没有方法 前额 使用ObservableCollection<t>,尽管此方法存在于List<t>。

    是否有可用的扩展方法?

    3 回复  |  直到 15 年前
        1
  •  15
  •   JaredPar    15 年前

    默认情况下,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));
    
        2
  •  5
  •   PL.    15 年前
    public static class EnumerableExtensions
    {
        public static void ForEach<T>(this IEnumerable<T> enumerable, Action<T> action)
        {
            foreach (var e in enumerable)
            {
                action(e);
            }
        }
    }
    
        3
  •  1
  •   yu yang Jian    7 年前
    observableCollection.ToList().ForEach( item => /* do something */);