为什么ForEach是List <t>成员,而不是IEnumerable <t>扩展方法?

时间:2015-08-10 09:24:12

标签: c# linq foreach extension-methods

例如,我有int数组,我需要将每个元素增加2.在现代c#中使用linq和扩展方法,显而易见的解决方案是:

var array = new[] {1, 2, 3};
array.ForEach(p => p += 2);

但遗憾的是,代码不会编译,因为ForEach不是IEnumerable的扩展方法,但它的成员如果是List。所以我需要使用经典的foreach循环或转换数组来列出,但这种解决方案并不那么优雅和简单。

任何人都可以告诉我,为什么Microsoft将ForEach方法设计为List的成员,而不是IEnumerable的扩展方法?

0 个答案:

没有答案