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++;
}
foreachest de fournir un mécanisme d'itération commun à toutes les collections, qu'elles soient indexables ( List) ou non ( Dictionary).
Dictionaryne soit pas indexable, une itération de le Dictionarytraverse 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é).