Razor循环

# Razor - 循环和数组 语句可以在循环中重复执行。 Razor也支持类似Javascript一样的循环。 ## For 循环 如果需要重复运行相同的语句,您可以编写一个循环。 如果您能够确定循环的次数,则可以使用 for 循环。这种循环类型是专门为计数或反向计数设计的: ```cs <html> <body> @for(var i = 10; i < 21; i++) { <p>Line @i</p> } </body> </html> ``` ## ForEach 循环 如果您需要处理集合或数组,则通常要用到 `foreach` 循环。 集合是一组相似的对象,`foreach` 循环允许您在每个项目上执行一次任务。`foreach` 循环会遍历集合直到完成为止。 下面的例子遍历 `ASP.NET Request.ServerVariables` 集合。 ```cs <html> <body> <ul> @foreach (var x in Request.ServerVariables) { <li>@x</li> } </ul> </body> </html> ``` ## While 循环 while 是一种通用的循环。 while 循环以关键词 while 开始,后面跟括号,其中定义循环持续的长度,然后是要循环的代码块。 while 循环通常会对用于计数的变量进行增减。 在下面的例子中,循环每运行一次,+= 运算符就向变量 i 增加 1。 ```cs <html> <body> @{ var i = 0; while (i < 5) { i += 1; <p>Line # @i</p> } } </body> </html> ``` ## 数组 如果您需要存储相似的变量,但又不希望为每个项目创建独立的变量,那么数组就派上用场了: ```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> ```