ZetCode

C# foreach

上次修改时间:2024 年 1 月 17 日

在本文中,我们将展示如何使用 C# 中的 foreach 语句和 forEach 方法循环遍历数据。

foreach (var val in vals)
{
    ...
}

foreach 语句对实现 IEnumerable 的集合中的每个元素执行一个语句或一个语句块。

public void ForEach (Action<T> action);

ForEach 方法对 List<T> 的每个元素执行指定的操作。

C# foreach 数组

在下面的示例中,我们使用 foreach 语句遍历数组的元素。

Program.cs
int[] vals = [1, 2, 3, 4, 5];

foreach (var val in vals)
{
    Console.WriteLine(val);
}

该示例打印整数数组的所有元素。

$ dotnet run
1
2
3
4
5

C# foreach 二维数组

下一个示例循环遍历一个二维数组。

Program.cs
int[,] vals =
{
    {1, 2, 3, 4, 5},
    {6, 7, 8, 9, 10},
    {11, 12, 13, 14, 15}
};

foreach (var e in vals)
{
    Console.Write($"{e} ");
}

Console.WriteLine();

Console.WriteLine("------------------------------------");

foreach (int i in Enumerable.Range(0, vals.GetLength(0)))
{
    foreach (int j in Enumerable.Range(0, vals.GetLength(1)))
    {
        Console.Write($"{vals[i, j]}");
    }

    Console.WriteLine();
}

我们有一个二维整数数组。 我们循环遍历这些值两次。

foreach (var e in vals)
{
    Console.Write($"{e} ");
}

这里,我们逐个循环遍历元素。

foreach (int i in Enumerable.Range(0, vals.GetLength(0)))
{
    foreach (int j in Enumerable.Range(0, vals.GetLength(1)))
    {
        Console.Write($"{vals[i, j]}");
    }

    Console.WriteLine();
}

使用两个 foreach 循环,我们循环遍历嵌套数组。

$ dotnet run
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 
------------------------------------
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15

C# foreach List

在下面的示例中,我们使用 foreach 语句循环遍历一个列表。

Program.cs
List<string> words = ["tea", "falcon", "book", "sky"];

foreach (var word in words)
{
    Console.WriteLine(word);
}

我们打印字符串列表的所有元素。

$ dotnet run
tea
falcon
book
sky

C# foreach 列表的列表

在下一个示例中,我们循环遍历一个列表的列表。

Program.cs
List<List<string>> words =
[
    new() {"tea", "falcon", "book", "sky"},
    new() {"cup", "crown", "borrow", "moore"},
    new() {"arm", "nice", "frost", "sea"}
];

foreach (var nested in words)
{
    foreach (var word in nested)
    {
        Console.WriteLine(word);
    }
}

要迭代列表的列表,我们使用两个 foreach 循环。

C# foreach 字典

以下示例使用 foreach 语句循环遍历字典的元素。

Program.cs
var domains = new Dictionary<string, string>
{
    {"sk", "Slovakia"},
    {"ru", "Russia"},
    {"de", "Germany"},
    {"no", "Norway"}
};

foreach (var pair in domains)
{
    Console.WriteLine($"{pair.Key} - {pair.Value}");
}

Console.WriteLine("-----------------------");

foreach ((var Key, var Value) in domains)
{
    Console.WriteLine($"{Key} - {Value}");
}

我们有一个域名字典。 使用 foreach 语句,我们循环遍历字典的键/值对。

$ dotnet run
sk - Slovakia
ru - Russia
de - Germany
no - Norway
-----------------------
sk - Slovakia
ru - Russia
de - Germany
no - Norway

C# forEach 数组

在下面的示例中,我们使用 forEach 方法遍历数组的元素。

Program.cs
int[] vals = [1, 2, 3, 4, 5];

Array.ForEach(vals, e => Console.WriteLine(e));

该示例打印整数数组的所有元素。 我们使用 Array.ForEach 方法。

C# forEach List

在下面的示例中,我们使用 forEach 方法循环遍历一个列表。

Program.cs
List<string> words = ["tea", "falcon", "book", "sky"];

words.ForEach(e => Console.WriteLine(e));

我们打印字符串列表的所有元素。

C# foreach 字典

以下示例使用 ForEach 循环遍历字典的元素。 在这种情况下,我们还使用 Linq。

Program.cs
var domains = new Dictionary<string, string>
{
    {"sk", "Slovakia"},
    {"ru", "Russia"},
    {"de", "Germany"},
    {"no", "Norway"}
};

domains.ToList().ForEach(pair => Console.WriteLine($"{pair.Key} - {pair.Value}"));

我们调用 Linq 的 ToList 方法将字典转换为列表,然后调用 ForEach 方法。

来源

C# 语言参考

在本文中,我们介绍了 C# 中的 foreach 语句和 forEach 方法。

作者

我叫 Jan Bodnar,是一位热情的程序员,拥有丰富的编程经验。 我自 2007 年以来一直撰写编程文章。迄今为止,我已撰写了 1,400 多篇文章和 8 本电子书。 我拥有超过十年的编程教学经验。

列出所有 C# 教程