首页 >后端开发 >C++ >为什么 .NET 的'IEnumerable”没有'ForEach”扩展方法?

为什么 .NET 的'IEnumerable”没有'ForEach”扩展方法?

Linda Hamilton
Linda Hamilton原创
2025-01-22 02:47:12250浏览

Why Doesn't .NET's `IEnumerable` Have a `ForEach` Extension Method?

.NET 的 IEnumerable:缺失的 ForEach 扩展方法

与许多其他语言不同,.NET Framework 令人惊讶地省略了 ForEachIEnumerable 扩展方法。 这种缺席经常引发问题,性能担忧经常被认为是一个潜在原因。

为什么省略?

C# 的内置 foreach 语句已经可以有效地处理大多数迭代需求。 添加 ForEach 扩展方法是多余的。

此外,foreach语句的可读性通常超过ForEach()方法调用:

<code class="language-csharp">// Using ForEach() extension method
list.ForEach(item => item.DoSomething());

// Using foreach statement
foreach (var item in list)
{
    item.DoSomething();
}</code>

虽然foreach需要更多的击键,但它的清晰度往往会胜出。

重新考虑需求

最近的对话强调了 ForEach() 扩展方法的潜在好处:

  • 编译时类型安全: ForEach() 提供编译时类型检查,与 foreach 的运行时检查不同。
  • 简洁的委托调用:使用ForEach()调用委托更加紧凑,例如objects.ForEach(DoSomething)
  • 方法链的潜力:虽然实际价值和潜在的缺点需要仔细考虑,但ForEach()支持方法链。

这些优点表明标准化的 ForEach() 方法可能是未来 .NET 版本的宝贵补充。

以上是为什么 .NET 的'IEnumerable”没有'ForEach”扩展方法?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn