同时迭代多个列表或数组:C# 中的 Zip 函数
为了使用单个 foreach 语句高效地迭代多个集合,C# 提供了内置 Zip 功能。此操作自 .NET 4 起可用,并简化了将不同序列中的元素配对的过程。
要使用 Zip 函数,只需在两个或多个集合上调用它即可。例如,考虑以下包含两个列表的示例:
var numbers = new [] { 1, 2, 3, 4 }; var words = new [] { "one", "two", "three", "four" };
使用 Zip 函数,您可以创建一个组合两个列表中的元素的新序列,从而生成元组序列:
var numbersAndWords = numbers.Zip(words, (n, w) => new { Number = n, Word = w });
现在,您可以使用 foreach 循环迭代numbersAndWords 序列:
foreach(var nw in numbersAndWords) { Console.WriteLine(nw.Number + nw.Word); }
这将打印连接值:
1one 2two 3three 4four
或者,您也可以使用 Tuple 及其静态 Tuple,而不是使用带有命名字段的匿名类型。创建助手:
foreach (var nw in numbers.Zip(words, Tuple.Create)) { Console.WriteLine(nw.Item1 + nw.Item2); }
Zip 函数提供了一个优雅且高效的解决方案,用于在 C# 中同时迭代多个集合。它简化了组合不同序列元素的过程,使代码更具可读性和可维护性。
以上是C# 的 Zip 函数如何简化同时迭代多个列表的过程?的详细内容。更多信息请关注PHP中文网其他相关文章!