在C#中,yield
关键字用于简化枚举器(enumerator)的创建,使得实现枚举的代码更加简洁。以下是详细讲解以及相应实例代码,包括基础和高级用法。
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// 使用 yield 返回一系列数字
foreach (var number in GenerateNumbers())
{
Console.WriteLine(number);
}
}
// 使用 yield 返回一系列数字
static IEnumerable<int> GenerateNumbers()
{
for (int i = 1; i <= 5; i++)
{
yield return i;
}
}
}
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// 使用 yield 实现 Fibonacci 数列
foreach (var fib in GenerateFibonacci(10))
{
Console.WriteLine(fib);
}
}
// 使用 yield 实现 Fibonacci 数列
static IEnumerable<int> GenerateFibonacci(int count)
{
int a = 0, b = 1;
for (int i = 0; i < count; i++)
{
yield return a;
int temp = a;
a = b;
b = temp + b;
}
}
}
基础用法: yield
用于生成一个包含1到5的数字序列。每次循环GenerateNumbers
方法时,通过yield return
返回一个数字。
高级用法: yield
用于生成一个包含指定数量的Fibonacci数列。GenerateFibonacci
方法中通过yield return
返回Fibonacci数列中的每个数字,使得代码更加清晰。
yield
关键字的使用可以简化枚举器的创建,使得代码更加易读和高效。在实际应用中,yield
通常用于处理大量数据集或实现延迟加载的场景。
源代码获取:公众号回复消息【code:85548
】