Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describen las refactorizaciones de acciones rápidas que realizan la conversión entre dos estructuras de bucles. Incluye algunas razones por las que podría interesarle cambiar entre un bucle for y una instrucción foreach en el código.
Convertir un bucle for en una instrucción foreach
Si tiene un bucle for en el código, puede usar esta refactorización para convertirlo en una instrucción foreach.
Esta refactorización se aplica a lo siguiente:
C#
Visual Basic
Nota
La refactorización de acción rápida Convertir en "foreach" solo está disponible para bucles for que contienen los tres elementos: un inicializador, la condición y el iterador.
Motivos para efectuar la conversión
Estos son algunos de los motivos por los que le puede convenir convertir un bucle for en una instrucción foreach:
No use la variable de bucle local dentro del bucle salvo como índice para obtener acceso a elementos.
Quiere simplificar el código y reducir la probabilidad de que se produzcan errores lógicos en las secciones de inicializador, condición e iterador.
Cómo se usa
Coloque el símbolo de inserción en la palabra clave
for
.Pulse Ctrl+. o haga clic en el icono del destornillador
en el margen del archivo de código.
Seleccione Convertir en "foreach" . También puede seleccionar Vista previa de cambios para abrir el cuadro de diálogo Vista previa de cambios y, después, seleccionar Aplicar.
Convertir una instrucción foreach en un bucle for
Si tiene una instrucción foreach (C#) o For Each...Next (Visual Basic) en el código, puede usar esta refactorización para convertirla en un bucle for.
Esta refactorización se aplica a lo siguiente:
C#
Visual Basic
Motivos para efectuar la conversión
Estos son algunos de los motivos por los que le puede convenir convertir una instrucción foreach en un bucle for:
Quiere usar la variable de bucle local dentro del bucle para hacer algo más que obtener acceso al elemento.
Está recorriendo en iteración una matriz multidimensional y quiere tener más control sobre los elementos de la matriz.
Cómo se usa
Coloque el símbolo de inserción en la palabra clave
foreach
oFor Each
.Pulse Ctrl+. o haga clic en el icono del destornillador
en el margen del archivo de código.
Seleccione Convertir en "for" . También puede seleccionar Vista previa de cambios para abrir el cuadro de diálogo Vista previa de cambios y, después, seleccionar Aplicar.
Dado que la refactorización introduce una nueva variable de recuento de iteraciones, en la esquina superior derecha del editor aparecerá el cuadro Cambiar nombre. Si quiere elegir otro nombre para la variable, escríbalo y presione Entrar o seleccione Aplicar en el cuadro Cambiar nombre. Si no quiere elegir un nombre nuevo, presione Esc o seleccione Aplicar para descartar el cuadro Cambiar nombre.
Nota
En C#, el código generado por estas refactorizaciones usa un tipo explícito o var como tipo de los elementos de la colección. El tipo en el código generado, explícito o implícito, depende de la configuración de estilo de código que queda dentro del ámbito. Estas opciones de estilo de código concretas se configuran en el nivel de máquina en Herramientas>Opciones>Editor de texto>C#>Estilo de código>General>Preferencias de “var” o en el nivel de solución en un archivo EditorConfig. Si cambia una configuración de estilo de código en Opciones, vuelva a abrir el archivo de código para que los cambios surtan efecto.