C# 中 yield return 的作用是什麼?


Yield 關鍵字有助於對集合進行自定義狀態迭代。這意味著,當我們使用 yield 關鍵字時,控制會在呼叫方函式和源之間往返,反之亦然。

示例

 即時演示

using System;
using System.Collections.Generic;
namespace DemoApplication {
   class Program {
      static List<int> numbersList = new List<int> {
         1, 2, 3, 4, 5
      };
      public static void Main() {
         foreach(int i in RunningTotal()) {
            Console.WriteLine(i);
         }
         Console.ReadLine();
      }
      public static IEnumerable<int> RunningTotal() {
         int runningTotal = 0;
         foreach(int i in numbersList) {
            runningTotal += i;
            yield return (runningTotal);
         }
      }
   }
}

輸出

上述程式的輸出為

1
3
6
10
15

在上述示例中,在 main 方法的 for each 中,我們遍歷執行總計的數字列表。因此,只要呼叫 yield return,控制就會返回到 main 方法的每個迴圈並列印值。在列印值後,控制會再次進入 running total 的每個迴圈。需要注意的一件事是,先前的值也已保留。簡單來說,yield 關鍵字有效建立了集合項的惰性列舉,它可以高效得多。

更新日期: 08-Aug-2020

3 千+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.