C# 提供豐富的迴圈建構與強型別集合操作,配合 Razor 語法高效渲染動態資料清單。
已知迭代次數時使用 for 迴圈,三段式結構:初始化、條件、迭代運算:
<html>
<body>
@for (var i = 10; i < 21; i++)
{
<p>Line @i</p>
}
</body>
</html>
語法:for (init; condition; increment) { body }。支援複雜初始化與多變數控制。
foreach 為遍歷 IEnumerable<T>、陣列、集合的標準方式,唯讀、自動處理列舉器:
<html>
<body>
<ul>
@foreach (var x in Request.ServerVariables)
{
<li>@x</li>
}
</ul>
</body>
</html>
型別推論 var 自動推導元素型別。不支援移除/新增集合元素 (需用 for 反向迴圈或 List.RemoveAll)。
while 在條件為 true 時持續執行,適合無法預知次數的場景:
<html>
<body>
@{
var i = 0;
while (i < 5)
{
i += 1;
<p>Line #@i</p>
}
}
</body>
</html>
需確保迴圈內修改條件變數。do-while 變體保證至少執行一次。
C# 陣列為固定大小、同型別元素集合;List<T> 為動態大小的靈活替代:
@{
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>
關鍵屬性/方法:Length (陣列長度)、Count (List 長度)、IndexOf (搜尋索引)、[index] 索引器 (0-based)。
@using System.Linq
@{
var numbers = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var evenNumbers = numbers.Where(n => n % 2 == 0);
var sum = numbers.Sum();
}
<p>Even: @string.Join(", ", evenNumbers)</p>
<p>Sum: @sum</p>
在 @functions 或 @code 區塊引入 System.Linq 即可使用 LINQ 擴充方法進行篩選、投影、聚合等強大操作。