Comment obtenir l'index de l'itération courante d'une boucle foreach ?

Comment obtenir l’index de l’itération courante d’une boucle foreach ?


Source : Stack Overflow.)

Le foreach sert à itérer sur des collections qui implémentent IEnumerable. Il le fait en appelant GetEnumerator sur la collection, qui retournera un Enumerator.

Cet Enumerator possède une méthode et une propriété :

  • MoveNext()

  • Current

Current retourne l’objet sur lequel l’Enumerator se trouve actuellement, MoveNext met à jour Current vers l’objet suivant.

Le concept d’index est étranger au concept d’énumération et ne peut pas être réalisé.

Pour cette raison, la plupart des collections peuvent être parcourues à l’aide d’un indexeur et de la construction de boucle for.

Je préfère grandement utiliser une boucle for dans cette situation plutôt que de suivre l’index avec une variable locale.