This article has been localized into Hungarian by the community.
Ciklusok
A ciklusok használata hasznos programozási technika, ami a Razor kódodban is nagy segítséget nyújthat. Ciklusokkal megismételhetsz egy bizonyos cselekedetet egy bizonyos számú alkalommal - például egy lista elemeit kiíratni, ahogy azt a következő példákban látni fogjuk.
A C# több különböző ciklussal rendelkezik, és ezek mind rendelkezésedre állnak Razorben is. Vegyük most végig őket, mindnél ugyanazt az adatforrást használva: egy névlistát, amit rendezetlen HTML listává szeretnénk változtatni.
Az adatforrás
Kezdd egy névlista definiálásával a nézet fájlod tetején:
@{
List<string> names = new List<string>()
{
"John Doe",
"Jane Doe",
"Joe Doe",
"Jenna Doe",
"Doggy Doe"
};
}
Ezzel elkezdhetjük a különböző ciklusokat tesztelni.
A for ciklus
A for ciklus akkor hasznos, amikor számon kell tartanod, hányadik iterációjánál tartasz a ciklusnak, mivel hozzáférésed van a számoló változóhoz a ciklus testében (ennek a neve ezúttal i):
<ul>
@for (int i = 0; i < names.Count; i++)
{
<li>@names[i]</li>
}
</ul>
A foreach ciklus
Egy ilyen feladatra mindenképp a foreach ciklus a legegyszerűbb:
<ul>
@foreach (string name in names)
{
<li>@name</li>
}
</ul>
A while ciklus
A while ciklus inkább más körülmények között hasznos, de ettől még használható itt is:
<ul>
@{
int counter = 0;
}
@while(counter < names.Count)
{
<li>@names[counter++]</li>
}
</ul>
A do...while ciklus
Mint a while ciklus, ez is másfajta feladatoknál használtabb. A különbség a while és a do...while ciklusok közt az, hogy a feltétel mikor értékelődik ki a. A while ciklus esetén ez az első iteráció előtt történik, ami azzal járhat, hogy el sem kezdődik a ciklus. A do...while ciklus esetén viszont ellenkezőleg, az első iteráció után történik a kiértékelés, ami miatt legalább egyszer mindenképp végre van hajtva a ciklus:
<ul>
@{
counter = 0;
}
@do
{
<li>@names[counter++]</li>
} while (counter < names.Count);
</ul>
break/continue
Közös ezekben a ciklusokban, hogy képesek saját maguk teljes megszakítására (break, teljesen megszakad a ciklus), valamint a jelenlegi iteráció átugrására (continue, megszakad a jelenlegi iteráció, de folytatódik a ciklus). Alább a for ciklusos példa átírásában megállítjuk a ciklust egy if állítás segítségével, amint kiírtunk három nevet:
<ul>
@for (int i = 0; i < names.Count; i++)
{
<li>@names[i]</li>
@if(i >= 2)
{
<li>...and so on</li>
break;
}
}
</ul>
Összefoglaló
Ahogy láthattad, a ciklusok használata ugyanolyan Razorben, mint C#-ban. Akár ki- és be ugrálhatsz markupba, ahogy a példák is mutatták. Ez a cikk leginkább illusztrációként szolgál, hogy milyen könnyen is lehet adatforrásokon ciklust végrehajtani Razorben - ha többet szeretnél a ciklusok mögötti elméletről tudni, keresd fel bátran C# tanfolyamunkat.