Возможный дубликат:
LINQ эквивалент foreach для IEnumerable <T>
Мне интересно, есть ли метод IEnumerable, например, следующий .Each() в библиотеке .Net
var intArray = new [] {1, 2, 3, 4};
intArrary.Each(Console.WriteLine);
Я знаю, что могу использовать цикл foreach
или легко написать метод расширения следующим образом:
public static class EnumerableExtensions
{
public static void Each<T>(this IEnumerable<T> enumberable, Action<T> action)
{
foreach (var item in enumberable)
{
action(item);
}
}
}
Но я надеюсь не создавать свой собственный метод, чтобы испортить код, если в библиотеке уже есть такой метод расширения. И что-то вроде .Each() (с несколькими перегрузками, которые могут принимать условия в качестве дополнительных параметров) в значительной степени необходимы программистам, и их уже должно быть. Правильно ли я?
Обновление
Разработчики Ruby могут распознать его как .each() итератор. И это то, что я надеюсь иметь на С#. Возможно, С# может иметь больше методов итератора, например, в Ruby.