Maison > développement back-end > Tutoriel C#.Net > exemple de code foreach en C#

exemple de code foreach en C#

零下一度
Libérer: 2017-06-24 10:00:11
original
2126 Les gens l'ont consulté

foreach peut parcourir certains types de données. Comme le montre la figure, le type de données parcouru doit avoir la méthode publique GetEnumerator.

Lors de l'utilisation du parcours foreach, le type d'inférence var est impliqué. Si la version générique n'est pas implémentée à ce moment, ce sera toujours le type objet.

Le parcours Foreach ne peut que lire les données, mais ne peut pas modifier les données. Il peut être détecté par une chaîne. La chaîne est traversable, mais le caractère qui la compose ne peut pas être modifié. (Uniquement dans ce scénario).

foreach se déplace uniquement vers l'avant, en lisant un par un, similaire à la méthode Read de DataReader qui exploite la base de données.

D'après l'analyse ci-dessus, on peut voir que la méthode IEnumerator doit être définie à l'intérieur de la classe pour pouvoir être parcourue. Il y a deux solutions ici.

Méthode 1 : utilisez l'expression de retour rendement

yield ; si la valeur de retour est IEnumerable, cela signifie qu'un type itérable est automatiquement généré.

Si la valeur de retour est IEnumerator, cela signifie qu'un itérateur est automatiquement généré. Le type IEnumerator est un itérateur.

Vous pouvez l'utiliser pour obtenir la valeur du tableau de personnes dans l'image ci-dessus lors de la traversée.

Méthode 2 En implémentant l'interface IEnumerable

IEunmerable inclut la méthode GetEunmetator et la valeur de retour est le type d'IEnumerator.

À l'heure actuelle, une autre classe est nécessaire pour hériter de l'interface IEnumerator, afin que sa sous-classe puisse être renvoyée pour atteindre l'objectif.

Processus d'implémentation :

1. Une variable de type int doit être ajoutée pour marquer la position de l'index. Utilisez int position=-1 ici.

2. Ajoutez la variable de tableau correspondante pour recevoir le tableau transmis. Ici string[] persion;

3. L'attribut Curren implémenté doit renvoyer les données de l'index actuel. return person[position];

4. Pour implémenter la méthode MoveNext, vous devez ajouter 1 au pointeur (index) et avancer. La valeur de retour est un type bool, qui est utilisé pour déterminer si le. l'index a été exploité.

5. Implémentez la méthode Reset, qui est la méthode de réinitialisation, et attribuez la position à -1 ;

6. Ajoutez un constructeur avec des paramètres pour recevoir les données transmises.

3. Analyse de la collection List

On peut voir à partir de l'outil de réflexion que la méthode Add de la List la collection consiste à ajouter des éléments internes Ajoutez une valeur, et cet élément est un tableau. Parce qu'il est générique, il est affiché sous la forme T.

Autrement dit, il existe une telle variable à l'intérieur de la collection pour stocker les données ajoutées, tout comme le tableau défini ci-dessus, de cette façon, la classe de collection List est personnalisée avec ce qui précède

Le. les classes sont cohérentes. La définition ci-dessus sert simplement à démontrer le processus. Bien sûr, en raison des besoins de l'entreprise, vous pouvez implémenter et étendre vous-même les classes ci-dessus, par exemple en modifiant les données statiques

en méthode Add pour les ajouter. et filtrer les données, la logique, etc., peut être étendue en fonction des besoins de l'entreprise.

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal