Existe-t-il une construction de langage rare que je n'ai pas rencontrée (comme celles que j'ai apprises récemment, certaines sur Stack Overflow) en C # pour obtenir une valeur représentant l'itération actuelle d'une boucle foreach?
Par exemple, je fais actuellement quelque chose comme ça selon les circonstances:
int i = 0;
foreach (Object o in collection)
{
// ...
i++;
}
foreach
est de fournir un mécanisme d'itération commun à toutes les collections, qu'elles soient indexables ( List
) ou non ( Dictionary
).
Dictionary
ne soit pas indexable, une itération de le Dictionary
traverse dans un ordre particulier (c'est-à-dire qu'un énumérateur est indexable par le fait qu'il produit des éléments séquentiellement). En ce sens, nous pourrions dire que nous ne recherchons pas l'index dans la collection, mais plutôt l'index de l'élément énuméré actuel dans l'énumération (c'est-à-dire si nous sommes au premier ou au cinquième ou au dernier élément énuméré).