原文: https://www.programiz.com/csharp-programming/foreach-loop

在本文中,我们将学习foreach循环(for循环的替代方法)以及如何将其与数组和集合一起使用。

C# 提供了一种易于使用且可读性强的替代方法for循环,即在处理数组和集合以遍历数组/集合项时使用的foreach循环。foreach循环遍历每个项目,因此称为foreach循环。

在继续进行foreach循环之前,请访问:


foreach循环的语法

  1. foreach (element in iterable-item)
  2. {
  3. // body of foreach loop
  4. }

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


foreach循环如何工作?

C# `foreach`循环 - 图1

foreach循环一起使用的in关键字用于对iterable-item进行迭代。in关键字在每次迭代时从iterable-item中选择一个项目,并将其存储在变量element中。

在第一次迭代中,iterable-item的第一项存储在element中。 在第二次迭代中,选择了第二个元素,依此类推。

foreach循环将执行的次数等于数组或集合中的元素数。

这是使用for循环遍历数组的示例:


示例 1:使用for循环打印数组

  1. using System;
  2. namespace Loop
  3. {
  4. class ForLoop
  5. {
  6. public static void Main(string[] args)
  7. {
  8. char[] myArray = {'H','e','l','l','o'};
  9. for(int i = 0; i < myArray.Length; i++)
  10. {
  11. Console.WriteLine(myArray[i]);
  12. }
  13. }
  14. }
  15. }

使用foreach循环可以完成相同的任务。

示例 2:使用foreach循环打印数组

  1. using System;
  2. namespace Loop
  3. {
  4. class ForEachLoop
  5. {
  6. public static void Main(string[] args)
  7. {
  8. char[] myArray = {'H','e','l','l','o'};
  9. foreach(char ch in myArray)
  10. {
  11. Console.WriteLine(ch);
  12. }
  13. }
  14. }
  15. }

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

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:foreach循环和列表(集合)

该程序计算列表中元素的总和。

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);
        }
    }
}</int>

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

Sum = 44

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

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