【发布时间】:2011-05-16 17:39:06
【问题描述】:
我想知道 .Net 库中是否有类似以下 .Each() 的 IEnumerable 方法
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() 迭代器。这就是我希望在 C# 中拥有的东西。也许 C# 可以拥有更多像 Ruby 中的迭代器方法。
【问题讨论】:
-
对于 List 有一个标准的 ForEach 扩展。
-
@James ForEach 不是扩展。它一直都在。
-
@James List
.ForEach(Action ) 不是扩展方法。它自 .NET 2.0 以来就一直存在 -
@linquize - 好吧,你是对的,我误会它是一种扩展方法。