数组
foreach循环
前言
C# 提供了一种比 for
循环更简洁、可读性更强的替代方案——foreach
循环,尤其适用于数组和集合的迭代操作。foreach
循环的核心理念是“遍历每个元素”,因此得名。在进入 foreach
循环的学习之前,建议先了解以下内容:
- C#
for
循环 - C# 数组
- C# 集合
作用
foreach
循环的作用是简化对数组或集合中每个元素的访问。它通过使用 in
关键字,在每次迭代时从可迭代项中选择一个元素,并将其存储在指定的变量中。循环将会自动遍历整个集合或数组,直到所有元素都被访问完毕。与 for
循环相比,foreach
不需要显式管理索引,因此代码结构更为简洁。
使用场景
foreach
循环通常用于:
- 数组遍历:逐一访问数组中的元素,尤其当你不需要关心元素的索引时。
- 集合遍历:可以方便地遍历
List
、Dictionary
等集合类型,轻松处理每个元素。 - 数据统计:通过遍历数据集合进行某种统计处理,如计算总和、计数等。
示例
示例 1:使用 foreach
遍历数组
下面的例子展示了如何通过 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
中的每个字符,并将其存储在变量 ch
中,然后在每次循环中打印出来。
示例 2:使用 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
在该程序中,foreach
循环依次遍历数组 gender
中的每个字符,根据字符值判断是男性还是女性,并进行计数。
示例 3:使用 foreach
遍历集合
foreach
不仅限于数组,还可以用于集合。下面的示例通过 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);
}
}
}
输出:
Sum = 44
在这里,foreach
用于遍历 List
集合中的每个整数,并在每次迭代时将元素值累加到 sum
中。
结语
通过上述示例,我们可以看到 foreach
循环提供了一种简洁、易读且强大的方式来处理数组和集合。与传统的 for
循环相比,foreach
的优势在于它不需要管理索引,极大地减少了代码的复杂度,因此在遍历数组和集合时更为推荐。