Mengubah senarai semasa lelaran boleh menyebabkan masalah, seperti sakit kepala yang "koleksi telah diubahsuai; operasi penghitungan tidak boleh dilaksanakan" tidak normal. Walau bagaimanapun, sesetengah teknologi dapat menghapuskan elemen secara berkesan semasa lelaran.
Satu kaedah ialah menggunakan senarai lelaran terbalik untuk gelung. Ini dapat menghalang kedudukan indeks memusnahkan koleksi:
<code class="language-csharp">for (int i = safePendingList.Count - 1; i >= 0; i--) { // 处理元素 // safePendingList.RemoveAt(i); }</code>
pilihan lain ialah menggunakan kaedah penyingkiran dengan predikat untuk memeriksa setiap elemen:
Contoh
<code class="language-csharp">safePendingList.RemoveAll(item => item.Value == someValue);</code>
sebelum penyingkiran:
<code class="language-csharp">var list = new List<int>(Enumerable.Range(1, 10));</code>
selepas penyingkiran:
<code class="language-csharp">Console.WriteLine("移除前:"); list.ForEach(i => Console.WriteLine(i));</code>
output:
<code>1 2 3 4 5 6 7 8 9 10</code>
Atas ialah kandungan terperinci Bagaimana dengan selamat mengeluarkan elemen dari senarai semasa meleleh di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!