Itérateur

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. C'est 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 conteneur, contenant une collection ou un tableau, de parcourir la collection en utilisant l'instruction "foreach" d'une manière plus simple. Il est utilisé avec des classes de collection fortement typées pour itérer des structures de données complexes telles que des arbres binaires, qui nécessitent un parcours récursif et maintiennent l'état d'itération à travers la récursivité. Le concept d'itérateur est également utilisé dans l'implémentation de l'exécution différée dans les requêtes LINQ.

Definir Tech 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émentation manuelle de l'interface "IEnumerator" lors de la création de classes de collection prenant en charge l'instruction "foreach". Le code de 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é du développeur.

En général, un itérateur est similaire à un curseur de base de données en ce sens 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 # en tant que méthode, opérateur ou get accessor. Par exemple, un itérateur peut être utilisé pour parcourir une collection de chaînes afin d'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 avance à l'élément suivant de la collection et indique la fin de cette collection
  • Current: propriété qui récupère la valeur de l'élément actuellement pointé
  • Dispose: nettoie l'itération

GetEnumerator () est la méthode d'itérateur par défaut de l'interface IEnumerable. Cette méthode peut être implémentée dans la collection qui contient la classe conteneur. La méthode GetEnumerator () est appelée lors de l'exécution de l'instruction "foreach", qui utilise l'énumérateur renvoyé pour parcourir les valeurs. L'instruction «yield return» est utilisée dans le bloc itérateur pour récupérer un élément de la collection. Cela permet également de positionner l'emplacement actuel de sorte que l'exécution commence à partir de cet emplacement la prochaine fois qu'elle se produit. L'instruction "yield break" termine l'itération. Cette définition a été écrite dans le contexte de C #