Rumah > pembangunan bahagian belakang > C++ > Sekiranya saya menggunakan gelung `foreach` atau` for` untuk mengubah suai senarai di C#?

Sekiranya saya menggunakan gelung `foreach` atau` for` untuk mengubah suai senarai di C#?

DDD
Lepaskan: 2025-01-27 13:41:09
asal
861 orang telah melayarinya

Should I Use a `foreach` or `for` Loop to Modify Lists in C#?

Ubah suai senarai dalam C#: gelung foreach atau gelung for?

Dalam versi sebelum C# 4.0, mengubah suai senarai semasa gelung foreach akan menyebabkan pengecualian. Walau bagaimanapun, .NET 4.0 memperkenalkan sokongan untuk ciri ini. Namun, pendekatan terbaik ialah menggunakan gelung for tradisional.

Enum tidak berubah

Pernyataan

foreach menggunakan koleksi tidak berubah, seperti yang dinyatakan oleh MSDN: "Pernyataan foreach...tidak boleh digunakan untuk menambah atau mengalih keluar item daripada koleksi sumber untuk mengelakkan kesan sampingan yang tidak dapat diramalkan."

Penyelesaian Gelungfor

Untuk mengubah suai senarai semasa mengulanginya, disyorkan untuk bertukar kepada gelung

: for

<code class="language-csharp">for (var i = 0; i < list.Count; i++)
{
    // 修改 list[i]
}</code>
Salin selepas log masuk
Pendekatan ini membenarkan lelaran dan pengubahsuaian tanpa menghadapi pepijat atau tingkah laku yang tidak dijangka.

Pengecualian koleksi serentak

Sila ambil perhatian bahawa blog yang dirujuk dalam soalan menyebut bahawa pengecualian ini tidak digunakan untuk koleksi serentak yang diperkenalkan dalam .NET 4.0. Walau bagaimanapun, masih disyorkan untuk menggunakan gelung

untuk pengubahsuaian senarai kerana ia adalah teknik yang disyorkan dan paling boleh dipercayai. for

Atas ialah kandungan terperinci Sekiranya saya menggunakan gelung `foreach` atau` for` untuk mengubah suai senarai di 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan