How do I execute a foreach lambda expression on ObservableCollection<T>?

0 votes
asked Mar 25, 2010 by zain-shaikh

How do I execute a foreach lambda expression on ObservableCollection<T>?

There is not method of foreach with ObservableCollection<T> although this method exists with List<T>.

Is there any extension method available?

3 Answers

0 votes
answered Mar 25, 2010 by jaredpar

There is no method available by default in the BCL but it's straight forward to write an extension method which has the same behavior (argument checking omitted for brevity)

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

Use case

ObservableCollection<Student> col = ...;
col.ForEach(x => Console.WriteLine(x.Name));
0 votes
answered Mar 25, 2010 by pl
public static class EnumerableExtensions
{
    public static void ForEach<T>(this IEnumerable<T> enumerable, Action<T> action)
    {
        foreach (var e in enumerable)
        {
            action(e);
        }
    }
}
0 votes
answered Sep 15, 2017 by yu-yang-jian
observableCollection.ToList().ForEach( item => /* do something */);
Welcome to Q&A, where you can ask questions and receive answers from other members of the community.
Website Online Counter

...