Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengulang Melalui Dua Senarai Serentak dalam C#?

Bagaimanakah Saya Boleh Mengulang Melalui Dua Senarai Serentak dalam C#?

Susan Sarandon
Lepaskan: 2024-12-31 13:13:17
asal
1000 orang telah melayarinya

How Can I Iterate Through Two Lists Simultaneously in 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 });
Salin selepas log masuk

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);
}
Salin selepas log masuk

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);
}
Salin selepas log masuk

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];
Salin selepas log masuk

Cara lain ialah menggunakan Parallel.ForEach:

Parallel.ForEach(numbers, number =>
{
    int index = Array.IndexOf(numbers, number);
    listB[index] = words[index];
});
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan