原文: https://www.programiz.com/csharp-programming/foreach-loop
在本文中,我们将学习foreach循环(for循环的替代方法)以及如何将其与数组和集合一起使用。
C# 提供了一种易于使用且可读性强的替代方法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: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循环用于遍历一个集合。 遍历一个集合类似于遍历一个数组。
在第一次迭代中选择集合的第一个元素,在第二次迭代中选择第二个元素,依此类推,直到最后一个元素。
 
                         
                                

