TOC

This article has been localized into Spanish by the community.

Razor:

Ciclos

El uso de ciclos es una técnica de programación extremadamente útil de la cual también puedes beneficiarte en tu código Razor. Los ciclos te permiten repetir una acción y/o mostrar una salida para una cantidad específica de iteraciones - por ejemplo para mostrar elementos en una lista, también como veremos en los ejemplos de este artículo.

Hay muchos tipos de ciclos en C# y todos ellos están disponibles en tu código Razor. Vamos a ver todos ellos, usando la misma y muy simple fuente de datos: Una lista de nombres, la cual convertiremos en una lista desordenada en HTML.

La fuente de datos

Empieza por definir una lista de nombres en el inicio de tu archivo de vista como esto:

@{
List<string> names = new List<string>()
{
"John Doe",
"Jane Doe",
"Joe Doe",
"Jenna Doe",
"Doggy Doe"
};
}

Ahora estás listo para probar varios tipos de ciclos.

El ciclo "for"

El ciclo for está especialmente bien adaptado a situaciones donde necesitas conservar el rastro de qué tan lejos en el proceso del ciclo estas, porque siempre puedes accesar a una variable contador ( llamada i en este ejemplo):

<ul>
@for (int i = 0; i < names.Count; i++)
{
<li>@names[i]</li>
}
</ul>

El ciclo "foreach"

El ciclo foreach es definitivamente el más sencillo de usar para una tarea como esta:

<ul>
@foreach (string name in names)
{
<li>@name</li>
}
</ul>

El ciclo "while"

El ciclo while esta mejor adaptado para otros casos de uso que este, pero aun así puedes usarlo:

<ul>
@{
int counter = 0;
}
@while(counter < names.Count)
{
<li>@names[counter++]</li>
}
</ul>

El ciclo "do-while"

Muy parecido al ciclo while este es más relevante para otros tipos de tareas de ciclado. La diferencia entre el while y el do...while es cuando la condición es evaluada. Para el ciclo while, esta es evaluada antes de entrar a la primera iteración, significando que pudieran nunca entrar en el ciclo - la condición de un do...while es devaluada después de la primera iteración, significando que siempre entrar al ciclo al menos una vez:

<ul>
@{
counter = 0;
}
@do
{
<li>@names[counter++]</li>
} while (counter < names.Count);
</ul>

break/continue

Algo común para todos estos ciclos es desde luego la habilidad para romper (completamente dejar el ciclo) y continuar detener la iteración actual y seguir con la siguiente. Aquí hay un ejemplo de el ciclo for dónde podemos utilizar una sentencia if para asegurarnos que detendremos el ciclo después de que hayamos imprimido un máximo de 3 nombres:

<ul>  
@for (int i = 0; i < names.Count; i++)  
{  
<li>@names[i]</li>  
@if(i >= 2)  
{  
<li>...and so on</li>  
break;  
}  
}  
</ul>

Resumen

Cómo puedes ver, ciclar sobre los datos con código Razor es justo como lo harías en C#. Puedes incluso entrar o salir del marcado, cómo se ilustra en los ejemplos - si quieres saber más sobre la teoría detrás de cada ciclo, por favor consulta nuestro tutorial de C#.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!