yield 關鍵字

yield 關鍵字放在返回型別為 IEnumerableIEnumerable<T>IEnumeratorIEnumerator<T> 的方法中,告訴編譯器生成返回型別(IEnumerableIEnumerator)的實現,當迴圈時,將方法執行到每個 yield “得到每個結果。

當你想要返回理論上無限的序列的下一個元素時,yield 關鍵字很有用,因此預先計算整個序列是不可能的,或者在返回之前計算完整的值序列會導致使用者不希望的暫停。

yield break 也可以用於隨時終止序列。

由於 yield 關鍵字需要迭代器介面型別作為返回型別,例如 IEnumerable<T>,因此不能在非同步方法中使用它,因為這將返回 Task<IEnumerable<T>> 物件。

進一步閱讀