跳到主要内容

C# foreach循环

提示
  1. foreach 循环简介:C# 的 foreach 循环提供了一种简单、易读的方式来迭代数组和集合中的每个元素。
  2. 工作原理:foreach 循环通过 in 关键字迭代集合或数组中的元素,每次迭代自动选择下一个元素。
  3. 适用性和优势:相比于传统的 for 循环,foreach 循环在处理数组和集合时更易读、易理解,适用于数组和集合的遍历,特别是当不需要知道元素的索引时。

C# 提供了一种易于使用且更易读的循环替代方式——foreach 循环,用于在处理数组和集合时迭代数组/集合的项目。foreach 循环迭代每个项目,因此称为 foreach 循环。

在深入了解 foreach 循环之前,请参阅:

foreach 循环的语法

foreach (元素 in 可迭代项)
{
// foreach 循环的主体
}

这里的可迭代项可以是数组或集合类。

foreach 循环的工作原理

C# foreach 循环流程图

与 foreach 循环一起使用的 in 关键字用于迭代 可迭代项。in 关键字在每次迭代中从 可迭代项 中选择一个项目并存储在变量 元素 中。

在第一次迭代中,可迭代项 的第一个项目存储在元素中。在第二次迭代中,选择第二个元素,依此类推。

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("男性数量 = {0}", male);
Console.WriteLine("女性数量 = {0}", female);
}
}
}

当我们运行程序时,输出将是:

男性数量 = 6
女性数量 = 4

示例 4: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("总和 = {0}", sum);
Console.ReadLine();
}
}
}

当我们运行程序时,输出将是:

总和 = 44

在这个程序中,使用 foreach 循环遍历一个集合。遍历集合与遍历数组类似。

集合的第一个元素在第一次迭代时被选中,第二个元素在第二次迭代时被选中,以此类推,直到最后一个元素。