Maison >développement back-end >C++ >Comment la fonction Zip de C# peut-elle simplifier l'itération simultanée sur plusieurs listes ?

Comment la fonction Zip de C# peut-elle simplifier l'itération simultanée sur plusieurs listes ?

DDD
DDDoriginal
2025-01-04 19:51:10314parcourir

How Can C#'s Zip Function Simplify Iterating Over Multiple Lists Simultaneously?

Itération simultanée de plusieurs listes ou tableaux : fonction Zip en C#

Pour parcourir efficacement plusieurs collections avec une seule instruction foreach, C# fournit la fonction Zip intégrée. Cette opération est disponible depuis .NET 4 et simplifie le processus d'appariement d'éléments de différentes séquences.

Pour utiliser la fonction Zip, invoquez-la simplement sur deux ou plusieurs collections. Par exemple, considérons l'exemple suivant avec deux listes :

var numbers = new [] { 1, 2, 3, 4 };
var words = new [] { "one", "two", "three", "four" };

À l'aide de la fonction Zip, vous pouvez créer une nouvelle séquence qui combine des éléments des deux listes, ce qui donne une séquence de tuples :

var numbersAndWords = numbers.Zip(words, (n, w) => new { Number = n, Word = w });

Maintenant, vous pouvez parcourir la séquence numberAndWords à l'aide d'une boucle foreach :

foreach(var nw in numbersAndWords)
{
    Console.WriteLine(nw.Number + nw.Word);
}

Cela imprimera le fichier concaténé valeurs :

1one
2two
3three
4four

Alternativement, au lieu d'utiliser un type anonyme avec des champs nommés, vous pouvez également utiliser Tuple et son assistant Tuple statique.Create :

foreach (var nw in numbers.Zip(words, Tuple.Create)) 
{
    Console.WriteLine(nw.Item1 + nw.Item2);
}

La fonction Zip fournit un solution élégante et efficace pour parcourir plusieurs collections simultanément en C#. Il simplifie le processus de combinaison d'éléments de différentes séquences, rendant le code plus lisible et maintenable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn