首頁 > 後端開發 > C++ > 為什麼 C# 沒有 IEnumerable 的 ForEach 擴充方法?

為什麼 C# 沒有 IEnumerable 的 ForEach 擴充方法?

Linda Hamilton
發布: 2025-01-22 02:57:13
原創
895 人瀏覽過

Why Doesn't C# Have a ForEach Extension Method for IEnumerable?

缺少 IEnumerable ForEach 擴充的奇怪案例

最近關於 C# 缺少 Zip 函數的討論引發了一個相關問題:為什麼 C# 不為廣泛使用的 ForEach 介面提供 IEnumerable 擴充方法? 有趣的是,只有 List<T> 包含此功能。

解開謎團

這個省略是效能最佳化嗎?還是有更深層、根本的原因? 有幾種理論試圖解釋這一明顯的差距。

內建foreach優勢

一種觀點表明,C# 的內建 foreach 語句足以滿足大多數迭代需求。 其簡潔易讀的語法通常是首選:

<code class="language-csharp">foreach (Item item in list)
{
    item.DoSomething();
}</code>
登入後複製

這與擴展方法的更詳細語法形成對比:

<code class="language-csharp">list.ForEach(item => item.DoSomething());</code>
登入後複製

ForEach擴充的論點

然而,其他人爭論 ForEach() 擴展方法在特定情況下的實際好處。 這些好處包括:

  • 改進的類型安全性: 擴充方法提供編譯時類型檢查,與 foreach 語句的執行時間檢查不同。
  • 簡化的語法:它簡化了委託的調用,如「objects.ForEach(DoSomething);」所示。
  • 方法連結潛力:雖然可能容易過度使用,但連結 ForEach() 呼叫的能力是一個引人注目的優勢。

視角的轉變

最初持懷疑態度,現在有些人認識到 ForEach() 擴展方法在某些場景中的價值。 這次重新評估顯示微軟可能會考慮在未來的框架版本中添加標準化的ForEach方法。

IEnumerable 缺少這種擴充方法仍然是一個討論的話題。 鑑於潛在的優勢,開發者社群期待進一步的發展,希望看到 C# 擴充庫能夠解決這一差距。

以上是為什麼 C# 沒有 IEnumerable 的 ForEach 擴充方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板