En caso de bucle for puedo declarar el índice fuera de la instrucción for. Por ejemplo, en lugar dedeclarar la variable fuera del bucle foreach
for (int i = 0; i < 8; i++) { }
que puedo hacer:
int i;
for (i = 0; i < 8; i++) { }
Ahora bien, en comparación con bucles Foreach, tengo que declarar la variable dentro del bucle:
foreach (string name in names) { }
y no puedo haga algo como:
string name;
foreach (name in names) { }
La razón por la que esto me molesta es que después del ciclo quiero usar la variable "nombre" nuevamente. En el caso de un bucle foreach, la variable "nombre" no se puede usar porque está fuera del alcance de foreach, y no puedo declarar otra variable con el mismo nombre desde que se declaró anteriormente en el mismo ámbito.
¿Alguna idea?
Estaría utilizando el nombre para iterar sobre la lista, ¿por qué necesita consultarla más adelante en su código? Creo que puedes codificar para evitar la necesidad de tal uso. –
@Shamim Hafiz: Tengo un caso donde prefiero una variable con el mismo nombre que estaba en el ciclo foreach. – Naor
Tuve el mismo problema. Utilizo un bucle foreach dentro de un try-catch y escribo en un log dentro del bloque try y catch. Utilizo la variable de elemento en el bucle foreach dentro de ambos registros. Terminé usando una variación de los primeros dos métodos de Jon Skeet. – seebiscuit