理解C#'S yield
關鍵字用於有效迭代
> yield
關鍵字顯著簡化了命令。 考慮此範例,說明了其在創建IEnumerable<T>
>的用途:
<code class="language-csharp">IEnumerable<object> FilteredList() { foreach(object item in FullList) { if(IsItemInPartialList(item)) yield return item; } }</code>
>函數都會從其關閉的位置恢復執行,評估下一個foreach
並僅在滿足條件時返回。
FilteredList()
讓我們檢查一個更簡單的範例:item
偵錯此程式碼表示
>不會一次完全執行。 它僅執行直到擊中a<code class="language-csharp">public void Consumer() { foreach(int i in Integers()) { Console.WriteLine(i); } } public IEnumerable<int> Integers() { yield return 1; yield return 2; yield return 4; yield return 8; yield return 16; yield return 16777216; }</code>
> Integers()
的下一個迭代> yield return
恢復,繼續從下一個foreach
>。 Consumer()
繼續
Integers()
使用yield return
>的關鍵好處:
yield
IEnumerable
>
IEnumerator
以上是c#'產量”關鍵字如何簡化命令式迭代?的詳細內容。更多資訊請關注PHP中文網其他相關文章!