Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya dapat menambah item ke senarai semasa gelung C# `foreach`?

Bagaimanakah saya dapat menambah item ke senarai semasa gelung C# `foreach`?

Linda Hamilton
Lepaskan: 2025-01-27 13:26:09
asal
955 orang telah melayarinya

How Can I Efficiently Add Items to a List During a C# `foreach` Loop?

Mengubah suai Senarai Dalam foreach Gelung dalam C#: Amalan Terbaik

Walaupun versi C# .NET 4.0 dan yang lebih baru tidak membuang pengecualian apabila mengubah suai enumerable di dalam gelung foreach, penambahan terus item dalam gelung boleh membawa kepada tingkah laku yang tidak dapat diramalkan. Artikel ini meneroka kaedah yang cekap dan boleh dipercayai untuk menambahkan item pada senarai semasa lelaran.

Pendekatan biasa menggunakan IList sementara sebagai penimbal berfungsi, tetapi tidak selalu merupakan penyelesaian yang paling cekap atau elegan. Isu teras berpunca daripada sifat koleksi yang tidak berubah yang diakses melalui foreach. Seperti yang dijelaskan oleh MSDN: foreach direka untuk mendapatkan semula data; menambah atau mengalih keluar elemen semasa lelaran adalah tidak digalakkan kerana kemungkinan ketidakkonsistenan.

Mengapa Elakkan Pengubahsuaian Terus dalam foreach?

Gelung foreach berulang pada petikan keadaan koleksi pada permulaan gelung. Menambah item secara langsung mengubah suai koleksi asas, yang berpotensi menyebabkan lelaran melangkau elemen atau menghadapi pengecualian yang tidak dijangka.

Pendekatan Disyorkan: Menggunakan for Gelung

Untuk menambah atau mengalih keluar item semasa mengulang, gelung for menyediakan penyelesaian yang paling boleh diramal dan cekap. Ia menawarkan kawalan langsung ke atas indeks dan membenarkan pengubahsuaian yang selamat.

Koleksi Serentak: Kes Istimewa

Penggunaan koleksi serentak (seperti ConcurrentBag atau ConcurrentQueue) adalah pengecualian. Koleksi ini direka bentuk untuk pengubahsuaian selamat benang dan menambah item semasa lelaran mungkin dibenarkan, tetapi ini harus dipertimbangkan dengan teliti dan hanya digunakan apabila keselamatan benang adalah yang paling penting.

Ringkasnya, walaupun secara teknikal mungkin untuk menambah item semasa gelung foreach dalam versi C# yang lebih baharu, secara amnya amalan terbaik menggunakan gelung for untuk tujuan ini untuk mengekalkan kejelasan kod, kecekapan dan mengelakkan hasil yang tidak dijangka. Koleksi serentak menyediakan alternatif untuk senario berbilang benang tertentu.

Atas ialah kandungan terperinci Bagaimanakah saya dapat menambah item ke senarai semasa gelung C# `foreach`?. 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