¿Hay alguna construcción de lenguaje rara que no haya encontrado (como las pocas que he aprendido recientemente, algunas en Stack Overflow) en C # para obtener un valor que represente la iteración actual de un bucle foreach?
Por ejemplo, actualmente hago algo como esto dependiendo de las circunstancias:
int i = 0;
foreach (Object o in collection)
{
// ...
i++;
}
foreach
es proporcionar un mecanismo de iteración común para todas las colecciones, independientemente de si son indexables ( List
) o no ( Dictionary
).
Dictionary
no es indexable, una iteración de Dictionary
lo atraviesa en un orden particular (es decir, un enumerador es indexable por el hecho de que produce elementos secuencialmente). En este sentido, podríamos decir que no estamos buscando el índice dentro de la colección, sino más bien el índice del elemento enumerado actual dentro de la enumeración (es decir, si estamos en el primer o quinto o último elemento enumerado).