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 關鍵字有效建立了集合項的惰性列舉,它可以高效得多。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP