C# yield 关键字

C# 中的 yield 关键字是一种在方法、运算符或 get 访问器中使用的特殊语法,主要用于实现迭代器。迭代器是一种可以逐个返回集合元素的方法。使用 yield return 可以在每次调用迭代器时生成并返回一个值,而不是一次性生成和返回所有值。

以下是一个 yield return 的示例:

public static IEnumerable<int> GetNumbers()
{
    for (int i = 0; i < 10; i++)
    {
        yield return i;
    }
}

在这个例子中,GetNumbers 方法是一个迭代器,它使用 yield return 在每次调用时返回一个数字。这样,你可以在 foreach 循环中使用这个方法,如下所示:

foreach (int number in GetNumbers())
{
    Console.WriteLine(number);
}

在每次循环中,都会调用 GetNumbers 方法并返回下一个数字。当所有的数字都返回后,循环将结束。

使用 yield 的主要优点是它可以延迟生成值,直到实际需要这些值。这在处理大型集合或无限序列时非常有用,因为你不需要一次性生成和存储所有的值,从而可以节省内存和计算资源。

另外,yield 关键字还可以与 break 一起使用,以提前结束迭代。例如,你可以使用 yield break 来停止迭代,如下所示:

public static IEnumerable<int> GetNumbers()
{
    for (int i = 0; i < 10; i++)
    {
        if (i > 5)
        {
            yield break;
        }
        yield return i;
    }
}

在这个例子中,当 i 大于 5 时,yield break 会被执行,这将立即结束迭代。因此,GetNumbers 方法将只返回 0 到 5 的数字。

你可能感兴趣的:(C#学习笔记,C#,yield)