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.