In .NET 3.5 List<> gains a ForEach method. I notice this does not exist on IList<> or IEnumerable<> what was the thinking here? Is there another way to do this? Nice and simple short way to do this?
I ask because I was at a talk where the speaker said always use the more general interfaces.
But why would I use IList<> as a return type if I want to be able to turn around and use ForEach? Then I would just end up casting it back to a List<>.
You can read Eric Lippert‘s blog for the reasons why this feature wasn’t added.
Why not just use the foreach keyword? I find it more readable.
Though you can add a
ForEachextension method toIEnumerable<T>if you want to:Taken from here.