Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengulang Melalui Dua Senarai Serentak dalam C#?
Menyalurkan Dua Senarai atau Tatasusunan Serentak dengan C#'s ForEach
Dalam C#, adalah mungkin untuk mengulang melalui berbilang senarai atau tatasusunan serentak menggunakan yang sama setiap pernyataan. Ini menghapuskan keperluan untuk pelbagai pendekatan berulang dan memperkemas proses.
Menggunakan Kaedah Zip
Jika anda menggunakan .NET Framework 4.0 atau lebih baru, anda boleh manfaatkan kaedah Zip terbina dalam. Kaedah ini menggandingkan elemen daripada dua jujukan yang ditentukan, menghasilkan jujukan pasangan.
Sebagai contoh, jika anda mempunyai dua senarai, listA dan listB, anda boleh menggunakan kaedah Zip seperti berikut:
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 });
Kod ini mencipta urutan objek tanpa nama, di mana setiap objek mengandungi sifat Nombor dan sifat Word. Anda kemudian boleh mengulangi urutan ini menggunakan pernyataan foreach:
foreach(var nw in numbersAndWords) { Console.WriteLine(nw.Number + nw.Word); }
Pendekatan Ganti dengan Tuple
Sebagai alternatif, anda boleh menggunakan Tuple daripada mencipta objek tanpa nama dan Tuple.Buat pembantu untuk menjimatkan pendakap:
foreach (var nw in numbers.Zip(words, Tuple.Create)) { Console.WriteLine(nw.Item1 + nw.Item2); }
Pilihan Iteratif Lain
Walaupun kaedah Zip menyediakan cara ringkas untuk melelaran melalui dua urutan serentak, terdapat pilihan lain juga. Satu pendekatan ialah menggunakan gelung berganda untuk:
for(int i = 0; i < listA.Count; i++) listB[i] = listA[i];
Cara lain ialah menggunakan Parallel.ForEach:
Parallel.ForEach(numbers, number => { int index = Array.IndexOf(numbers, number); listB[index] = words[index]; });
Memilih Pendekatan Iteratif Terbaik
Pendekatan berulang terbaik akan bergantung pada keperluan khusus anda dan versi .NET yang anda gunakan. Kaedah Zip adalah cekap dan serba boleh, manakala pendekatan lain mungkin lebih sesuai untuk senario warisan atau apabila menetapkan nilai berdasarkan indeks.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengulang Melalui Dua Senarai Serentak dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!