Maison > développement back-end > C++ > Comment puis-je parcourir deux listes simultanément en C# ?

Comment puis-je parcourir deux listes simultanément en C# ?

Susan Sarandon
Libérer: 2024-12-31 13:13:17
original
1000 Les gens l'ont consulté

How Can I Iterate Through Two Lists Simultaneously in C#?

Itération simultanée de deux listes ou tableaux avec ForEach de C#

En C#, il est possible de parcourir plusieurs listes ou tableaux simultanément en utilisant le même pour chaque instruction. Cela élimine le besoin d'approches itératives multiples et rationalise le processus.

Utilisation de la méthode Zip

Si vous utilisez .NET Framework 4.0 ou version ultérieure, vous pouvez profitez de la méthode Zip intégrée. Cette méthode associe des éléments de deux séquences spécifiées, ce qui donne une séquence de paires.

Par exemple, si vous avez deux listes, listA et listB, vous pouvez utiliser la méthode Zip comme suit :

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

var numbersAndWords = numbers.Zip(words, (n, w) => new { Number = n, Word = w });
Copier après la connexion

Ce code crée une séquence d'objets anonymes, où chaque objet contient une propriété Number et une propriété Word. Vous pouvez ensuite parcourir cette séquence en utilisant une instruction foreach :

foreach(var nw in numbersAndWords)
{
    Console.WriteLine(nw.Number + nw.Word);
}
Copier après la connexion

Approche alternative avec Tuple

Alternativement, au lieu de créer des objets anonymes, vous pouvez utiliser un Tuple et l'assistant Tuple.Create pour économiser sur les accolades :

foreach (var nw in numbers.Zip(words, Tuple.Create)) 
{
    Console.WriteLine(nw.Item1 + nw.Item2);
}
Copier après la connexion

Autre itératif Options

Bien que la méthode Zip offre un moyen concis de parcourir deux séquences simultanément, il existe également d'autres options. Une approche consiste à utiliser une double boucle for :

for(int i = 0; i < listA.Count; i++)
    listB[i] = listA[i];
Copier après la connexion

Une autre façon consiste à utiliser Parallel.ForEach :

Parallel.ForEach(numbers, number =>
{
    int index = Array.IndexOf(numbers, number);
    listB[index] = words[index];
});
Copier après la connexion

Choisir la meilleure approche itérative

La meilleure approche itérative dépendra de vos besoins spécifiques et de la version de .NET que vous utilisez. La méthode Zip est efficace et polyvalente, tandis que les autres approches peuvent être plus adaptées aux scénarios existants ou lors de l'attribution de valeurs basées sur un index.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal