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 });
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); }
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); }
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];
Une autre façon consiste à utiliser Parallel.ForEach :
Parallel.ForEach(numbers, number => { int index = Array.IndexOf(numbers, number); listB[index] = words[index]; });
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!