Zwei Listen oder Arrays gleichzeitig mit C#s ForEach iterieren
In C# ist es möglich, mehrere Listen oder Arrays gleichzeitig zu iterieren, indem dasselbe verwendet wird foreach-Anweisung. Dadurch entfällt die Notwendigkeit mehrerer iterativer Ansätze und der Prozess wird optimiert.
Verwendung der Zip-Methode
Wenn Sie .NET Framework 4.0 oder höher verwenden, ist dies möglich Nutzen Sie die integrierte Zip-Methode. Diese Methode paart Elemente aus zwei angegebenen Sequenzen, was zu einer Sequenz von Paaren führt.
Wenn Sie beispielsweise zwei Listen haben, listA und listB, können Sie die Zip-Methode wie folgt verwenden:
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 });
Dieser Code erstellt eine Folge anonymer Objekte, wobei jedes Objekt eine Number-Eigenschaft und eine Word-Eigenschaft enthält. Sie können diese Sequenz dann mit einer foreach-Anweisung durchlaufen:
foreach(var nw in numbersAndWords) { Console.WriteLine(nw.Number + nw.Word); }
Alternativer Ansatz mit Tupel
Alternativ können Sie, anstatt anonyme Objekte zu erstellen, ein Tupel verwenden und der Tuple.Create-Helfer, um Klammern zu sparen:
foreach (var nw in numbers.Zip(words, Tuple.Create)) { Console.WriteLine(nw.Item1 + nw.Item2); }
Sonstiges Iterative Optionen
Während die Zip-Methode eine präzise Möglichkeit bietet, zwei Sequenzen gleichzeitig zu durchlaufen, gibt es auch andere Optionen. Ein Ansatz ist die Verwendung einer doppelten for-Schleife:
for(int i = 0; i < listA.Count; i++) listB[i] = listA[i];
Eine andere Möglichkeit ist die Verwendung von Parallel.ForEach:
Parallel.ForEach(numbers, number => { int index = Array.IndexOf(numbers, number); listB[index] = words[index]; });
Auswahl des besten iterativen Ansatzes
Der beste iterative Ansatz hängt von Ihren spezifischen Anforderungen und der von Ihnen verwendeten .NET-Version ab. Die Zip-Methode ist effizient und vielseitig, während die anderen Ansätze möglicherweise besser für Legacy-Szenarien oder bei der Zuweisung von Werten basierend auf dem Index geeignet sind.
Das obige ist der detaillierte Inhalt vonWie kann ich in C# zwei Listen gleichzeitig durchlaufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!