Esiste un costrutto di linguaggio raro che non ho riscontrato (come i pochi che ho imparato di recente, alcuni su Stack Overflow) in C # per ottenere un valore che rappresenta l'attuale iterazione di un ciclo foreach?
Ad esempio, attualmente faccio qualcosa del genere a seconda delle circostanze:
int i = 0;
foreach (Object o in collection)
{
// ...
i++;
}
foreach
è fornire un meccanismo di iterazione comune per tutte le raccolte indipendentemente dal fatto che siano indicizzabili ( List
) o meno ( Dictionary
).
Dictionary
non sia indicizzabile, un'iterazione Dictionary
lo attraversa in un ordine particolare (ovvero un Enumeratore è indicizzabile dal fatto che produce elementi in sequenza). In questo senso, potremmo dire che non stiamo cercando l'indice all'interno della raccolta, ma piuttosto l'indice dell'elemento elencato corrente all'interno dell'enumerazione (ovvero se siamo al primo, quinto o ultimo elemento elencato).