IRONSOFTWAREHOME
MISES À JOUR POUR LES DÉVELOPPEURS

C# yield return : comment ça fonctionne pour les développeurs

Jacob Mellor, Directeur technique @ Team Iron
Jacob Mellor
Updated: 23 avril 2026

C# est l'un des langages de programmation les plus populaires développés par Microsoft, qui offre des fonctionnalités ajoutant élégance et efficacité à votre code. L'une de ces fonctionnalités est le mot-clé yield, introduit pour la première fois dans C# 2.0. Microsoft fournit une référence linguistique complète sur les déclarations de mot-clé yield pour explorer plus en détail leur utilisation dans les méthodes d'itération, que vous pouvez consulter dans la documentation officielle de Microsoft sur yield.

Dans cet article, nous examinerons yield return en C#, explorant sa fonctionnalité, ses cas d'utilisation et comment il peut transformer votre approche de l'itération.

Understanding the Basics: Iteration in C#

L'itération est un concept fondamental en programmation, et C# offre divers mécanismes pour y parvenir. Traditionnellement, les boucles telles que la boucle for et la boucle foreach ont été les outils de prédilection pour itérer sur des collections. Cependant, C# introduit une solution plus élégante avec le mot-clé yield appliqué à l'instruction return, et grâce à l'utilisation de l'interface IEnumerable.

L'efficacité de l'instruction yield return

Au cœur de son fonctionnement, yield return est une instruction utilisée dans la méthode de l'itérateur pour fournir une manière plus efficace de générer une séquence de valeurs. Il vous permet de créer un itérateur sans avoir besoin de générer une collection entière en mémoire, ce qui est particulièrement utile pour les grands ensembles de données ou les séquences infinies.

Voici un extrait de code simple pour illustrer l'utilisation de base de yield return :

using System;
using System.Collections.Generic;

public class Example
{
    // Method that generates numbers from start to end using 'yield return'
    public IEnumerable<int> GenerateNumbers(int start, int end)
    {
        // Loop from 'start' to 'end'
        for (int i = start; i <= end; i++)
        {
            yield return i; // Returns each number in the sequence without breaking the loop
        }
    }

    public static void Main()
    {
        // Usage: Using 'foreach' to iterate over numbers generated by 'GenerateNumbers'
        foreach (var number in new Example().GenerateNumbers(1, 5))
        {
            Console.WriteLine(number); // Outputs numbers 1 - 5
        }
    }
}

Dans cet exemple, la méthode GenerateNumbers utilise yield return pour produire une séquence de nombres de start à end. L'itérateur est évalué paresseusement, ce qui signifie que chaque numéro est généré à la demande pendant l'exécution de l'itération.

Évaluation Paresseuse et Efficacité

L'un des avantages significatifs de l'instruction yield return est sa capacité à prendre en charge l'évaluation paresseuse. Contrairement aux méthodes traditionnelles qui génèrent une collection entière avant l'itération, yield return produit des valeurs une par une. Cela peut entraîner des économies de mémoire significatives, en particulier lorsqu'on traite de grands ensembles de données.

Itération Avec État : Gérer des Scénarios Complexes

L'instruction yield return ne se limite pas à la génération de séquences simples ; elle excelle dans la gestion de scénarios plus complexes dans le bloc d'itérateur. En maintenant une machine d'état à travers les itérations, vous pouvez créer des itérateurs qui se souviennent de leur position dans la séquence.

using System;
using System.Collections.Generic;

public class FibonacciExample
{
    // Method that generates Fibonacci numbers up to the specified count
    public IEnumerable<string> GenerateFibonacci(int count)
    {
        int a = 0, b = 1;
        for (int i = 0; i < count; i++)
        {
            yield return a.ToString(); // Returns the Fibonacci number as a string
            int temp = a;
            a = b;
            b = temp + b;
        }
    }

    public static void Main()
    {
        // Usage: Iterating over Fibonacci numbers generated by 'GenerateFibonacci'
        foreach (var fibNumber in new FibonacciExample().GenerateFibonacci(8))
        {
            Console.WriteLine(fibNumber); // Outputs a Fibonacci number sequence
        }
    }
}

Dans cet exemple, la méthode GenerateFibonacci utilise yield return pour créer une séquence de nombres de Fibonacci. L'état est maintenu entre les itérations, assurant une génération et une sortie efficaces des nombres de Fibonacci.

Construire des Séquences Infinies

Une application fascinante de yield return est sa capacité à créer des séquences infinies de valeurs. Étant donné que les valeurs sont générées à la volée, vous pouvez représenter des séquences qui continuent indéfiniment sans consommer une mémoire infinie.

using System;
using System.Collections.Generic;

public class InfiniteSequenceExample
{
    // Method that generates an infinite sequence of even numbers
    public IEnumerable<int> GenerateEvenNumbers()
    {
        int num = 0;
        while (true)
        {
            yield return num;
            num += 2;
        }
    }

    public static void Main()
    {
        // Usage: Generating even numbers using the 'GenerateEvenNumbers' method
        var evenNumberIterator = new InfiniteSequenceExample().GenerateEvenNumbers().GetEnumerator();
        for (int i = 0; i < 5; i++)
        {
            evenNumberIterator.MoveNext();
            Console.WriteLine(evenNumberIterator.Current); // Outputs the first 5 even numbers
        }
    }
}

Dans cet exemple, la méthode GenerateEvenNumbers crée un itérateur pour les nombres pairs, et vous pouvez itérer sur celui-ci au besoin. Vous pouvez également utiliser l'instruction yield break avec yield return pour arrêter et sortir de la boucle, ce qui permet une itération personnalisée pour la boucle.

Présentation d'IronPDF : Une bibliothèque C# puissante

C# Yield Return (Comment ça fonctionne pour les développeurs) : Figure 1 - Page Web IronPDF

IronPDF se distingue comme une bibliothèque C# polyvalente conçue pour simplifier la complexité du travail avec les PDF. Que vous génériez des factures, des rapports ou tout autre document, IronPDF vous permet de convertir sans effort le contenu HTML en PDF soignés et professionnels directement dans votre application C#.

Installer IronPDF : Un démarrage rapide

Pour intégrer IronPDF dans votre projet C#, vous pouvez rapidement installer le package NuGet IronPDF. Exécutez la commande suivante dans votre Console du Gestionnaire de Packages :

PM > Install-Package IronPdf

Alternativement, vous pouvez localiser "IronPDF" dans le gestionnaire de packages NuGet et l'installer à partir de là.

Générer des PDFs avec IronPDF

Créer un PDF à l'aide d'IronPDF est un processus simple. Considérons un exemple de base :

using IronPdf;

public class PdfGenerationExample
{
    public static void Main()
    {
        var htmlContent = "<html><body><h1>Hello, IronPDF!</h1></body></html>";
        
        // Create a new PDF renderer instance
        var pdfRenderer = new ChromePdfRenderer();
        
        // Render the HTML content as a PDF and save it to a file
        pdfRenderer.RenderHtmlAsPdf(htmlContent).SaveAs("C:/GeneratedDocument.pdf");
    }
}

Dans l'exemple ci-dessus, IronPDF est utilisé pour rendre le contenu HTML dans un document PDF, qui est ensuite enregistré à l'emplacement spécifié. Pour plus d'informations détaillées, veuillez visiter la documentation IronPDF.

L'intersection de yield return et IronPDF

Maintenant, explorons si l'instruction yield return, un outil puissant pour l'évaluation paresseuse et l'itération efficace, peut s'intégrer harmonieusement avec IronPDF.

Considérons un scénario où vous devez générer un document PDF avec une liste d'éléments en utilisant yield return. Vous pouvez tirer parti des avantages des instructions yield pour générer dynamiquement du contenu et ensuite utiliser IronPDF pour transformer ce contenu en un PDF. L'extrait de code suivant génère un document PDF avec l'aide d'une instruction yield pour ajouter un contrôle dynamique du contenu PDF :

using System;
using System.Collections.Generic;
using System.Linq;
using IronPdf;

class Program
{
    // Method that dynamically generates content using 'yield return'
    public static IEnumerable<string> GenerateDynamicContent()
    {
        yield return "Item 1";
        yield return "Item 2";
        yield return "Item 3";
    }

    public static void Main(string[] args)
    {
        // Generate dynamic content using the 'GenerateDynamicContent' function
        var dynamicContent = GenerateDynamicContent();

        // Create HTML structure for the PDF document with dynamic content
        var dynamicPdfContent = $@"
            <html>
            <body>
                <h1>List of Items</h1>
                <ul>
                    {string.Join("", dynamicContent.Select(item => $"<li>{item}</li>"))}
                </ul>
            </body>
            </html>
        ";

        // Create a new PDF document with dynamically generated content
        var dynamicPdfRenderer = new ChromePdfRenderer();
        dynamicPdfRenderer.RenderHtmlAsPdf(dynamicPdfContent).SaveAs("C:/DynamicItems.pdf");
    }
}

Dans cet exemple, la méthode GenerateDynamicContent utilise yield return pour fournir une séquence d'éléments dynamiques. Le contenu généré est ensuite incorporé dans une structure HTML et utilisé par IronPDF pour créer un document PDF.

C# Yield Return (Comment ça fonctionne pour les développeurs) : Figure 2 - Sortie PDF du code précédent

Conclusion

En conclusion, yield return est une fonctionnalité puissante et élégante en C# qui transforme la façon dont vous abordez l'itération. Sa capacité à prendre en charge l'évaluation paresseuse, à gérer des scénarios complexes avec une itération à état et à créer des séquences infinies en fait un outil précieux dans votre boîte à outils de programmation. Que vous travailliez avec de grands ensembles de données ou que vous mettiez en œuvre des algorithmes sophistiqués, yield return vous permet d'écrire un code plus efficace et plus expressif.

Alors que yield return facilite la génération efficace et à la demande de contenu, IronPDF intervient pour convertir ce contenu en documents PDF professionnels de manière transparente. Que vous créiez dynamiquement des listes, des rapports ou tout autre document, cette synergie vous permet d'amener vos capacités de génération de documents C# à de nouveaux sommets. Exploitez le potentiel de ce duo dynamique, et laissez vos PDF briller avec un contenu dynamique et généré efficacement !

IronPDF offre un essai gratuit pour tester sa fonctionnalité complète comme en mode commercial. En savoir plus sur les licences IronPDF à partir de $999.

Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

OR
bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronPDF »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

ou téléchargez l'installateur Windows ici.

  1. Téléchargez et décompressez IronPDF à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans l'explorateur de solutions Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, « IronPDF.dll »

Licences à partir de 749 $