Skip to content

ES CSharp Keyword yield

Codex edited this page Oct 11, 2026 · 2 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

C#: yield

Manual C# · Guía Práctica

Crea un método iterador: el rendimiento de retorno emite el siguiente elemento; la ruptura de rendimiento finaliza la secuencia. El código se ejecuta mientras se itera.

Ejemplo sencillo (Example.cs)

Guarde este ejemplo por separado como Example.cs. Ejecútelo independientemente de los demás ejemplos de esta página.

Example.cs:

// PROJECT-EXAMPLE
System.Collections.Generic.IEnumerable<int> Numbers()
{
    yield return 1;
    yield return 2;
}
foreach (int value in Numbers()) System.Console.WriteLine(value);

Resultado:

1
2

Sintaxis

yield return expression; / yield break;

Ejemplo 1: forma básica

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;

public static class Program
{
    public static async Task Main(string[] args)
    {
        foreach (int value in Sequences.Count(3)) Console.WriteLine(value);
    }
}
public static class Sequences { public static IEnumerable<int> Count(int count) { for (int i = 0; i < count; i++) yield return i; yield break; } }

Ejemplo 2: otra forma práctica

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;

public static class Program
{
    public static async Task Main(string[] args)
    {
        await foreach (int value in Sequences.CountAsync(3)) Console.WriteLine(value);
    }
}
public static class Sequences { public static async IAsyncEnumerable<int> CountAsync(int count) { for (int i = 0; i < count; i++) { await Task.Delay(1); yield return i; } } }

Fuente oficial: Microsoft Aprender.

Clone this wiki locally