C# 提供了一种比 for 循环更简单易读的 for 循环替代方案:foreach 循环,在处理数组和集合时,用于遍历数组/集合中的元素。foreach 循环会遍历每个元素,因此得名 foreach 循环。
在继续学习 foreach 循环之前,请访问
- C# for 循环
- C# 数组
- C# 集合
foreach 循环的语法
foreach (element in iterable-item) { // body of foreach loop }
这里的 iterable-item 可以是数组或集合类。
foreach 循环如何工作?

与 foreach 循环一起使用的 in
关键字用于遍历 iterable-item。in 关键字在每次迭代时从 iterable-item 中选择一个元素,并将其存储在变量 element 中。
第一次迭代时,iterable-item 的第一个元素存储在 element 中。第二次迭代时,选择第二个元素,依此类推。
foreach 循环的执行次数等于数组或集合中的元素数量。
以下是使用 for 循环遍历数组的示例
示例 1:使用 for 循环打印数组
using System;
namespace Loop
{
class ForLoop
{
public static void Main(string[] args)
{
char[] myArray = {'H','e','l','l','o'};
for(int i = 0; i < myArray.Length; i++)
{
Console.WriteLine(myArray[i]);
}
}
}
}
使用 foreach 循环可以完成相同的任务。
示例 2:使用 foreach 循环打印数组
using System;
namespace Loop
{
class ForEachLoop
{
public static void Main(string[] args)
{
char[] myArray = {'H','e','l','l','o'};
foreach(char ch in myArray)
{
Console.WriteLine(ch);
}
}
}
}
当我们运行这两个程序时,输出将是
H e l l o
在上面的程序中,foreach 循环遍历数组 myArray。第一次迭代时,选择第一个元素,即 myArray[0],并将其存储在 ch 中。
同样,在最后一次迭代时,选择最后一个元素,即 myArray[4]。在循环体内部,打印 ch 的值。
当我们查看这两个程序时,使用 foreach 循环的程序更具可读性和易于理解。这是因为它简单而富有表现力的语法。
因此,在处理数组和集合时,foreach 循环优于 for 循环。
示例 3:使用 foreach 循环遍历性别数组
此程序计算男性和女性候选人的数量。
using System;
namespace Loop
{
class ForEachLoop
{
public static void Main(string[] args)
{
char[] gender = {'m','f','m','m','m','f','f','m','m','f'};
int male = 0, female = 0;
foreach (char g in gender)
{
if (g == 'm')
male++;
else if (g =='f')
female++;
}
Console.WriteLine("Number of male = {0}", male);
Console.WriteLine("Number of female = {0}", female);
}
}
}
当我们运行程序时,输出将是:
Number of male = 6 Number of female = 4
示例 4:带有 List(集合)的 foreach 循环
此程序计算List中元素的总和。
using System;
using System.Collections.Generic;
namespace Loop {
class ForEachLoop {
public static void Main(string[] args) {
var numbers = new List<int>() { 5, -8, 3, 14, 9, 17, 0, 4 };
int sum = 0;
foreach (int number in numbers) {
sum += number;
}
Console.WriteLine("Sum = {0}", sum);
Console.ReadLine();
}
}
}
当我们运行程序时,输出将是:
Sum = 44
在此程序中,foreach 循环用于遍历集合。遍历集合与遍历数组类似。
第一次迭代选择集合的第一个元素,第二次迭代选择第二个元素,依此类推,直到最后一个元素。