This article has been localized into German by the community.
Schleifen
Schleifen sind eine äußerst nützliche Programmiertechnik, von der Sie auch in Ihrem Razor-Code viel profitieren können. Durch Schleifen können Sie eine Aktion und / oder Ausgabe für eine bestimmte Anzahl von Iterationen wiederholen. Zum Beispiel, um Elemente in einer Liste auszugeben, wie in den Beispielen dieses Artikels gezeigt.
In C# gibt es verschiedene Arten von Schleifen, die alle in Ihrem Razor-Code verfügbar sind. Gehen wir sie alle mit derselben, sehr einfachen Datenquelle durch: einer Liste von Namen, die wir in eine ungeordnete HTML-Liste umwandeln.
Die Datenquelle
Definieren Sie zunächst oben in Ihrer View-Datei eine Liste mit Namen wie folgt:
@{
List<string> names = new List<string>()
{
"John Doe",
"Jane Doe",
"Joe Doe",
"Jenna Doe",
"Doggy Doe"
};
}
Jetzt können Sie die verschiedenen Arten von Schleifen testen.
Die "for" -schleife
Die for-Schleife eignet sich besonders gut für Situationen, in denen Sie verfolgen müssen, wie weit Sie sich in der Schleife befinden, da Sie immer auf die Zählvariable (in diesem Beispiel mit i bezeichnet) zugreifen können:
<ul>
@for (int i = 0; i < names.Count; i++)
{
<li>@names[i]</li>
}
</ul>
Die "foreach" -schleife
Die foreach-Schleife ist definitiv die am einfachsten zu verwendende für eine Aufgabe wie diese:
<ul>
@foreach (string name in names)
{
<li>@name</li>
}
</ul>
Die "while" -schleife
Die while-Schleife eignet sich besser für andere Anwendungsfälle als diese, aber Sie können sie trotzdem verwenden:
<ul>
@{
int counter = 0;
}
@while(counter < names.Count)
{
<li>@names[counter++]</li>
}
</ul>
Die "do...while" -schleife
Ähnlich wie die while-Schleife ist diese für andere Arten von Schleifenaufgaben relevanter. Der Unterschied zwischen der while- und der do ... while-Schleife besteht darin, dass die Bedingung ausgewertet wird. Für die while-Schleife wird sie vor dem Aufrufen der ersten Iteration ausgewertet, was bedeutet, dass sie möglicherweise niemals eine Schleife ausführt - die Bedingung für eine do ... while-Schleife wird nach der ersten Iteration ausgewertet, was bedeutet, dass sie immer mindestens einmal eine Schleife ausführt:
<ul>
@{
counter = 0;
}
@do
{
<li>@names[counter++]</li>
} while (counter < names.Count);
</ul>
break/continue
Allen diesen Schleifen gemeinsam ist natürlich die Fähigkeit, die Schleife zu unterbrechen (vollständig zu verlassen) und fortzusetzen (die aktuelle Iteration zu stoppen und zum nächsten zu springen). Hier ist ein überarbeitetes Beispiel der for-Schleife, in der wir eine if-Anweisung verwenden, um sicherzustellen, dass wir die Schleife stoppen, nachdem wir maximal 3 Namen gedruckt haben:
<ul>
@for (int i = 0; i < names.Count; i++)
{
<li>@names[i]</li>
@if(i >= 2)
{
<li>...and so on</li>
break;
}
}
</ul>
Zusammenfassung
Wie Sie sehen, ist das Durchlaufen von Daten mit Razor-Code genau wie in C#. Sie können sogar innerhalb und außerhalb des Markups springen, wie in den Beispielen dargestellt. Dieser Artikel dient hauptsächlich als Beispiel dafür, wie einfach es ist, mit Razor eine Schleife über Daten zu erstellen. Wenn Sie mehr über die Theorie hinter jeder Schleife erfahren möchten, lesen Sie bitte unser C# -Tutorial.