📜  C#foreach循环

📅  最后修改于: 2020-10-06 09:29:00             🧑  作者: Mango

在本文中,我们将学习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循环如何工作?

C# foreach loop flowchart

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

第一次迭代时, itemable-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循环

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

using System;
using System.Collections.Generic;
 
namespace Loop
{
    class ForEachLoop
    {
        public static void Main(string[] args)
        {
            var numbers = new List() {5,-8,3,14,9,17,0,4};
            int sum = 0;
 
            foreach(int number in numbers)
            {
                sum += number;
            }
            Console.WriteLine("Sum = {0}", sum);
        }
    }
}

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

Sum = 44

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

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