ASP.NET Razor — циклы и массивы C#
Операторы могут многократно выполняться в циклах.
Для циклов
Если вам нужно многократно запускать одни и те же операторы, вы можете запрограммировать цикл.
Если вы знаете, сколько раз вы хотите выполнить цикл, вы можете использовать цикл for . Такой цикл особенно удобен для прямого или обратного счета:
Пример
<html>
<body>
@for(var i = 10; i < 21; i++)
{<p>Line @i</p>}
</body>
</html>
Для каждой петли
Если вы работаете с коллекцией или массивом, вы часто используете цикл for each .
Коллекция — это группа похожих объектов, и цикл for each позволяет выполнять задачу для каждого элемента. Цикл for each проходит через коллекцию, пока она не будет завершена.
В приведенном ниже примере рассматривается коллекция ASP.NET Request.ServerVariables.
Пример
<html>
<body>
<ul>
@foreach (var x in
Request.ServerVariables)
{<li>@x</li>}
</ul>
</body>
</html>
Пока циклы
Цикл while является циклом общего назначения.
Цикл while начинается с ключевого слова while, за которым следуют круглые скобки, где вы указываете, как долго будет продолжаться цикл, а затем блок для повторения.
Циклы While обычно добавляют или вычитают переменную, используемую для подсчета.
В приведенном ниже примере оператор += добавляет 1 к переменной i при каждом выполнении цикла.
Пример
<html>
<body>
@{
var i = 0;
while (i < 5)
{
i += 1;
<p>Line @i</p>
}
}
</body>
</html>
Массивы
Массив полезен, когда вы хотите хранить похожие переменные, но не хотите создавать для каждой из них отдельную переменную:
Пример
@{
string[] members = {"Jani", "Hege", "Kai",
"Jim"};
int i = Array.IndexOf(members, "Kai")+1;
int len =
members.Length;
string x = members[2-1];
}
<html>
<body>
<h3>Members</h3>
@foreach (var person in
members)
{
<p>@person</p>
}
<p>The number of names
in Members are @len</p>
<p>The person at
position 2 is @x</p>
<p>Kai is now in
position @i</p>
</body>
</html>