首頁 > 後端開發 > C++ > `yield` 關鍵字如何簡化 C# 中迭代​​器的建立?

`yield` 關鍵字如何簡化 C# 中迭代​​器的建立?

Mary-Kate Olsen
發布: 2025-01-27 17:51:10
原創
723 人瀏覽過

How Does the `yield` Keyword Simplify Iterator Creation in C#?

理解 C# 的 yield 關鍵字:簡化迭代器創建

C# 中的 yield 關鍵字顯著簡化了迭代器的創建。 迭代器提供一系列值,而不需要將整個序列立即存儲在內存中。這種“惰性評估”提高了效率,尤其是在處理大型數據集時。

yield 關鍵字將標準循環轉換為迭代器方法。 此方法返回一個實現 IEnumerable<T> 接口的對象(其中 T 是序列中元素的類型)。 當調用者使用 foreach 循環進行迭代時,迭代器方法會在每次迭代時執行、暫停和恢復,這要歸功於 yield

這消除了通常與迭代器實現相關的手動簿記,從而產生更乾淨、更易於維護的代碼。

考慮這個例子:

<code class="language-csharp">public IEnumerable<object> FilteredList()
{
    foreach(object item in FullList)
    {
        if(IsItemInPartialList(item))
            yield return item;
    }
}</code>
登入後複製

FilteredList 返回 FullList 的過濾子集。 yield return 語句在找到每個匹配項後暫停執行,將該項返回給調用者。 當請求下一個項目時,迭代器將恢復。

yield 在各種情況下都是無價的:從查詢生成序列,從文件或數據庫延遲讀取數據,以及為獨特的數據結構創建自定義迭代器。它在 C# 2.0 中的引入大大提高了迭代器開發的簡便性和效率。

以上是`yield` 關鍵字如何簡化 C# 中迭代​​器的建立?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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