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