Maison > développement back-end > C++ > Comment fonctionnent les boucles Foreach en C# et quelles classes les implémentent ?

Comment fonctionnent les boucles Foreach en C# et quelles classes les implémentent ?

Patricia Arquette
Libérer: 2025-01-10 09:55:39
original
682 Les gens l'ont consulté

How Do Foreach Loops Work in C#, and Which Classes Implement Them?

Comprendre les foreach boucles C# et leur implémentation

Quelles classes utilisent des foreach boucles ?

La boucle foreach en C# est fortement utilisée avec les classes implémentant IEnumerable ou IEnumerable<T>. Cela inclut toute classe fournissant une méthode GetEnumerator() qui renvoie un IEnumerator ou un IEnumerator<T>. Essentiellement, cela couvre toutes les classes implémentant ICollection ou ICollection<T>, telles que les tableaux, les listes et autres collections.

foreach Mécanique des boucles :

Une boucle foreach standard (par exemple, foreach (int i in obj) { ... }) ressemble fonctionnellement à ceci :

<code class="language-csharp">var tmp = obj.GetEnumerator();
int i; // C# 4.0 and earlier
while (tmp.MoveNext()) {
    int i; // C# 5.0 and later
    i = tmp.Current;
    { ... } // Loop body
}</code>
Copier après la connexion

Considérations importantes : si l'enquêteur (tmp) implémente IDisposable, il est éliminé (semblable à une instruction using). La déclaration de int i diffère selon la version C#. En C# 5.0 et versions ultérieures, il est déclaré dans la boucle ; les versions antérieures le déclarent à l'extérieur. Cette distinction est cruciale lors de l'utilisation de i dans des méthodes anonymes ou des expressions lambda à l'intérieur de la boucle.

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!

source:php.cn
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