在.NET 3.5列表中<>获得ForEach方法。我注意到这在IList<>上不存在或IEnumerable<>这里有什么想法?还有另一种方法吗?这很好很简单的方法吗?
我问,因为我正在谈论演讲者说总是使用更通用的界面。 但为什么我会使用IList<>作为返回类型,如果我想转身并使用ForEach?然后,我最终会将其转换回List<>。
答案 0 :(得分:4)
这里的想法是什么?
您可以阅读Eric Lippert的blog,了解未添加此功能的原因。
还有其他办法吗?这很好很简单的方法吗?
为什么不直接使用foreach关键字?我发现它更具可读性。
foreach (var foo in ilist)
{
// etc...
}
如果您愿意,可以向ForEach
添加IEnumerable<T>
扩展程序:
public static void ForEach<T>(this IEnumerable<T> enumeration, Action<T> action)
{
foreach (T item in enumeration)
{
action(item);
}
}
取自here。
答案 1 :(得分:1)
它不在框架中(但是)但Rx添加.Run(此IEnumerable可枚举)扩展方法,它与List的自定义ForEach相同。在这是标准框架的一部分之前,您必须自己编写或使用额外的依赖项。
答案 2 :(得分:1)
为什么ForEach
不在IEnumerable<T>
? Eric Lippert很好地解释了in his blog。基本上,LINQ意味着功能性(没有副作用),ForEach
显然是无功能的。
但是,为什么它不在IList<T>
?好吧...... it should be!