yield 關鍵字
將 yield 關鍵字放在返回型別為 IEnumerable,IEnumerable<T>,IEnumerator 或 IEnumerator<T> 的方法中,告訴編譯器生成返回型別(IEnumerable 或 IEnumerator)的實現,當迴圈時,將方法執行到每個 yield “得到每個結果。
當你想要返回理論上無限的序列的下一個元素時,yield 關鍵字很有用,因此預先計算整個序列是不可能的,或者在返回之前計算完整的值序列會導致使用者不希望的暫停。
yield break 也可以用於隨時終止序列。
由於 yield 關鍵字需要迭代器介面型別作為返回型別,例如 IEnumerable<T>,因此不能在非同步方法中使用它,因為這將返回 Task<IEnumerable<T>> 物件。