Можно создать дубликат:
LINQ equivalent of foreach for IEnumerable<T>есть итератор .Each() (или .ForEach()) в стандартной библиотеке .Net?
мне интересно, есть ли способ 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() (с несколькими перегрузками, которые могут принимать условия в качестве дополнительных параметров) в значительной степени необходимы программистам, и их уже должно быть. Я прав?
Update
разработчики Рубин может признать его в качестве .each() итератора. И это то, что я надеюсь иметь на C#. Возможно, у C# может быть больше методов итератора, таких как Ruby.
Для списка есть расширение ForEach, которое является стандартным. – 2010-11-28 00:51:23
Возможно, обратите внимание также: http://stackoverflow.com/questions/1924535/c-any-benefit-of-listt-foreach-over-plain-foreach-loop – Brian 2010-11-28 01:07:23
@James ForEach не является расширением. Это всегда было. – RichK 2010-11-28 20:54:21