Rumah > pembangunan bahagian belakang > C++ > Bagaimana cara menambahkan item dengan selamat ke senarai semasa meleleh dengan gelung foreach di C#?

Bagaimana cara menambahkan item dengan selamat ke senarai semasa meleleh dengan gelung foreach di C#?

Susan Sarandon
Lepaskan: 2025-01-27 13:31:12
asal
427 orang telah melayarinya

How to Safely Add Items to a List While Iterating with a Foreach Loop in C#?

Ubah suai senarai dalam gelung foreach di C#

Dalam versi C# sebelum 4.0, cuba mengubah suai senarai dalam kitaran foreach akan menyebabkan keabnormalan. Walau bagaimanapun, dalam .NET 4.0, had ini dibatalkan.

<:> Soalan:

Memandangkan kod berikut, apabila menggunakan Foreach untuk melaraskan penghitungan bersarangnya, apakah cara terbaik untuk menambah projek ke senarai projek?

Amalan terbaik:

<code class="language-csharp">foreach (var item in Enumerable)
{
    foreach (var item2 in item.Enumerable)
    {
        item.Add(new item2); // 这行代码有问题
    }
}</code>
Salin selepas log masuk

set yang digunakan dalam gelung foreach tidak dapat direka bentuk. Oleh itu, ia tidak boleh diubahsuai secara langsung semasa lelaran. Untuk mengubah suai senarai dengan selamat, disyorkan untuk menggunakan tradisional untuk gelung. Penjelasan:

Dokumen MSDN menunjukkan bahawa pernyataan foreach digunakan untuk koleksi berulang. Walaupun ia tidak menyembunyikan atau memadam item ke koleksi sumber, ia juga memberi amaran untuk tidak bergantung kepada tingkah laku ini kerana terdapat kesan sampingan yang berpotensi. Jika anda perlu mengubah suai koleksi sumber, kaedah yang disyorkan adalah untuk digunakan untuk gelung.

Koleksi serentak tidak normal:

Artikel Blog Paul Jackson yang dipetik dalam masalah menyatakan bahawa set itu dibenarkan dalam koleksi C# Concurrent. Pengecualian ini diperoleh daripada penetapan koleksi serentak, dan ia mengendalikan kesan sampingan yang berpotensi dengan cara yang berbeza. Oleh itu, peraturan ini tidak sesuai untuk pengumpulan serentak. Untuk set biasa, masih disyorkan untuk menggunakan kitaran

untuk mengelakkan masalah yang berpotensi.

Atas ialah kandungan terperinci Bagaimana cara menambahkan item dengan selamat ke senarai semasa meleleh dengan gelung foreach di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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