C# Windows窗体应用程序——foreach的详细用法

foreach 是 C# 中用来遍历集合(如数组、列表、字典等)的关键字,它简化了对集合的遍历操作,避免了手动使用索引。foreach 会自动处理集合中的每个元素,并在循环体内执行指定的操作。

基本语法

foreach (var item in collection)
{
    // 执行对 item 的操作
}
  • var itemitem 是循环变量,代表集合中的每个元素,类型会根据集合类型自动推断。你也可以明确指定类型。
  • in collectioncollection 是你要遍历的集合,可以是数组、列表、字典等。

示例 1:遍历数组

假设有一个整型数组,我们可以使用 foreach 来遍历它:

int[] numbers = { 1, 2, 3, 4, 5 };

foreach (int number in numbers)
{
    Console.WriteLine(number);  // 输出数组中的每个元素
  • 在上面的代码中,numbers 是一个数组,int number 是每次循环时取到的元素。
  • 每次迭代时,number 会依次获得数组中的元素值(12345)。

示例 2:遍历集合(List)

List<string> fruits = new List<string> { "Apple", "Banana", "Orange" };

foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);  // 输出每个水果名称
}
  • fruits 是一个字符串列表,string fruit 是每次循环时取到的列表元素。
  • 输出为:
  • Apple
    Banana
    Orange

示例 3:遍历字典(Dictionary)

在字典中,foreach 可以用来遍历键值对:

Dictionary<string, int> fruitQuantities = new Dictionary<string, int>
{
    { "Apple", 10 },
    { "Banana", 5 },
    { "Orange", 8 }
};

foreach (KeyValuePair<string, int> pair in fruitQuantities)
{
    Console.WriteLine($"Fruit: {pair.Key}, Quantity: {pair.Value}");
}
  • KeyValuePair<string, int> 是字典中每个元素的类型,它包含 Key(键)和 Value(值)。
  • 输出为:
  • Fruit: Apple, Quantity: 10
    Fruit: Banana, Quantity: 5
    Fruit: Orange, Quantity: 8
    

示例 4:遍历字符串(字符数组)

你还可以使用 foreach 遍历字符串的每个字符:

string message = "Hello, World!";

foreach (char c in message)
{
    Console.WriteLine(c);  // 输出字符串中的每个字符
}
  • message 是字符串,char c 是每次循环时取到的字符。
  • 输出为:
    H
    e
    l
    l
    o
    ,
     
    W
    o
    r
    l
    d
    !
    

示例 5:使用 foreach 修改集合(不可行)

foreach 不允许你在循环中修改集合的元素(如添加、删除),因为它会导致集合在遍历过程中发生变化,从而可能引发错误。

比如,下面的代码会编译错误:

List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };

// 错误:不能在 foreach 中修改集合的元素
foreach (int number in numbers)
{
    if (number == 3)
    {
        numbers.Remove(number);  // 会抛出 InvalidOperationException
    }
}

示例 6:使用 foreach 结合 continuebreak

  • continue:跳过当前循环,进入下一次循环。
  • break:终止整个 foreach 循环。
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };

foreach (int number in numbers)
{
    if (number == 3)
    {
        continue;  // 跳过当前循环(不会执行 Console.WriteLine)
    }
    if (number == 5)
    {
        break;  // 终止整个循环
    }
    Console.WriteLine(number);
}
  • 输出:
  • 1
    2
    4
    

总结

  • foreach 用于简化集合的遍历,无需关注索引,适用于数组、列表、字典等集合类型。
  • 在遍历过程中,你可以直接访问集合中的每个元素。
  • 注意foreach 不支持修改集合元素(如添加或删除)。如果需要修改集合,应该使用 for 循环。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子木临枫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值