boucle foreach en C#
Question :
Quels types de classes permettent l'utilisation de boucles foreach ?
Réponse :
Techniquement, toute classe possédant une méthode publique nommée GetEnumerator() qui renvoie un type avec une méthode bool MoveNext() et une propriété Current peut être utilisée. Cependant, l'explication la plus courante implique une classe qui implémente IEnumerable ou IEnumerable, renvoyant un IEnumerator ou un IEnumerator.
Par extension, toute classe qui implémente ICollection ou ICollection (par exemple, Collection, List, Array (T[])) peut prendre en charge les boucles foreach.
Comment ça marche :
La boucle foreach fonctionne comme suit :
- Initialisez un objet temporaire (tmp) à partir de la méthode GetEnumerator() de l'objet donné (obj).
- Tant que tmp.MoveNext() renvoie true, le corps de la boucle (entouré de {...}) est exécuté à plusieurs reprises, contenant la valeur actuelle de Current.
Variantes :
- Si tmp prend en charge IDisposable, utilisez-le pour supprimer tmp une fois la boucle terminée.
- C# 5.0 permet de déclarer des variables comme i à l'intérieur d'une boucle, alors que dans les versions précédentes, elles devaient être déclarées en dehors de la boucle. Cette distinction devient critique lors de l'utilisation de i dans une méthode anonyme ou une expression lambda à l'intérieur d'une 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!
Déclaration: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