C# foreach 循环

C# 提供了一种比 for 循环更简单易读的 for 循环替代方案:foreach 循环,在处理数组和集合时,用于遍历数组/集合中的元素。foreach 循环会遍历每个元素,因此得名 foreach 循环。

在继续学习 foreach 循环之前,请访问


foreach 循环的语法

foreach (element in iterable-item)
{
    // body of foreach loop
}

这里的 iterable-item 可以是数组或集合类。


foreach 循环如何工作?

C# foreach loop flowchart
C# 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 循环用于遍历集合。遍历集合与遍历数组类似。

第一次迭代选择集合的第一个元素,第二次迭代选择第二个元素,依此类推,直到最后一个元素。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战