Compartir a través de


Refactorización para convertir un bucle for en una instrucción foreach y viceversa

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

  1. Coloque el símbolo de inserción en la palabra clave for.

  2. Pulse Ctrl+. o haga clic en el icono del destornillador Screwdriver icon en el margen del archivo de código.

    Convert to foreach menu

  3. 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:

Cómo se usa

  1. Coloque el símbolo de inserción en la palabra clave foreach o For Each.

  2. Pulse Ctrl+. o haga clic en el icono del destornillador Screwdriver icon en el margen del archivo de código.

    Convert to for menu

  3. 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.

  4. 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.

Vea también