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中选择一个项目,并将其存储在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循环用于遍历一个集合。遍历一个集合类似于遍历一个数组。
在第一次迭代中选择集合的第一个元素,在第二次迭代中选择第二个元素,依此类推,直到最后一个元素。