Maison > développement back-end > C++ > Comment le mot clé « rendement » simplifie-t-il la création d'itérateurs en C# ?

Comment le mot clé « rendement » simplifie-t-il la création d'itérateurs en C# ?

Mary-Kate Olsen
Libérer: 2025-01-27 17:51:10
original
723 Les gens l'ont consulté

How Does the `yield` Keyword Simplify Iterator Creation in C#?

Comprendre C # 'S yield Mot-clé: simplification de la création de l'itérateur

Le mot-clé yield en C # simplifie considérablement la création des itérateurs. Les itérateurs fournissent une séquence de valeurs sans exiger que la séquence entière soit stockée en mémoire à la fois. Cette «évaluation paresseuse» améliore l'efficacité, en particulier lorsqu'il s'agit de grands ensembles de données.

Le mot-clé yield transforme une boucle standard en méthode itérateur. Cette méthode renvoie un objet implémentant l'interface IEnumerable<T> (où T est le type d'éléments dans la séquence). Lorsque l'appelant itère à l'aide d'une boucle foreach, la méthode Itérator s'exécute, s'arrêtant et reprenant chaque itération grâce à yield.

Cela élimine la comptabilité manuelle généralement associée à la mise en œuvre de l'itérateur, entraînant un code plus propre et plus maintenable.

Considérez cet exemple:

<code class="language-csharp">public IEnumerable<object> FilteredList()
{
    foreach(object item in FullList)
    {
        if(IsItemInPartialList(item))
            yield return item;
    }
}</code>
Copier après la connexion

FilteredList Renvoie un sous-ensemble filtré de FullList. L'instruction yield return s'arrête l'exécution après la découverte de chaque élément de correspondance, renvoyant cet élément à l'appelant. L'itérateur reprend lorsque l'élément suivant est demandé.

yield est inestimable dans diverses situations: générer des séquences à partir de requêtes, lire paresseusement des données à partir de fichiers ou de bases de données et de création d'itérateurs personnalisés pour des structures de données uniques. Son introduction en C # 2.0 a considérablement amélioré la facilité et l'efficacité du développement des itérateurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal