Table des matières:
Définition - Que signifie Iterator?
Un itérateur, dans le contexte de C #, est un bloc de code qui renvoie une séquence ordonnée de valeurs d'une collection ou d'un tableau. Il s'agit d'une fonction membre implémentée à l'aide du bloc itérateur, qui contient une ou plusieurs instructions contenant le mot clé "yield".
Un itérateur est utilisé pour permettre aux consommateurs d'une classe de conteneur, contenant une collection ou un tableau, de parcourir la collection en utilisant l'instruction "foreach" de manière plus simple. Il est utilisé avec des classes de collection fortement typées pour itérer des structures de données complexes comme les arbres binaires, qui nécessitent une traversée récursive et maintiennent l'état d'itération tout au long de la récursivité. Le concept d'itérateur est également utilisé dans l'implémentation d'une exécution différée dans les requêtes LINQ.
Techopedia explique Iterator
L'itérateur est basé sur un modèle de conception qui fournit une méthode pour parcourir les éléments d'une collection d'éléments de manière séquentielle sans exposer la structure sous-jacente de la collection. Il élimine la tâche fastidieuse d'implémenter manuellement l'interface "IEnumerator" lors de la création de classes de collection qui prennent en charge l'instruction "foreach". Le code du langage intermédiaire nécessaire pour implémenter les méthodes et les propriétés de l'interface IEnumerator est généré par le compilateur, ce qui se traduit par une syntaxe plus simple, une taille de code réduite et une amélioration de la productivité des développeurs.
En général, un itérateur est similaire à un curseur de base de données en ce qu'il permet d'accéder aux éléments de données d'une collection, mais n'effectue pas d'itération. Un itérateur peut être implémenté en C # comme méthode, opérateur ou accesseur get. Par exemple, un itérateur peut être utilisé pour parcourir une collection de chaînes pour afficher le contenu de chaque chaîne de la collection.
Un itérateur est représenté par l'interface IEnumerator et est implémenté par le compilateur avec les méthodes suivantes:
- MoveNext: une méthode qui passe à l'élément suivant de la collection et indique la fin de cette collection
- Actuel: propriété qui récupère la valeur de l'élément actuellement pointé vers
- Éliminer: nettoie l'itération
