dengan cekap mengeluarkan elemen dari senarai C# semasa lelaran
Mengubah suai senarai semasa melelahkan melalui menggunakan kaedah standard sering membawa kepada ralat. Artikel ini membentangkan penyelesaian yang bersih untuk menghapuskan elemen dengan selamat dari InvalidOperationException
berdasarkan keadaan. List<T>
atau List<T>.Remove()
dalam gelung List<T>.RemoveAt()
atau gelung standard foreach
. Peralihan indeks menyebabkan masalah. for
Penyelesaian 1: Penyebaran terbalik
meleleh ke belakang menggunakan gelung mengelakkan isu indeks: for
<code class="language-csharp">var list = new List<int>(Enumerable.Range(1, 10)); for (int i = list.Count - 1; i >= 0; i--) { if (list[i] > 5) { list.RemoveAt(i); } } list.ForEach(i => Console.WriteLine(i));</code>
penyelesaian 2: kaedah RemoveAll()
dengan predikat: RemoveAll()
<code class="language-csharp">var list = new List<int>(Enumerable.Range(1, 10)); Console.WriteLine("Before:"); list.ForEach(i => Console.WriteLine(i)); list.RemoveAll(i => i > 5); Console.WriteLine("After:"); list.ForEach(i => Console.WriteLine(i));</code>
dalam kes ini). Ia biasanya lebih disukai untuk kejelasan dan kecekapannya. i > 5
sering menjadi pilihan pilihan untuk kesederhanaan dan kebolehbacaannya. RemoveAll()
Atas ialah kandungan terperinci Bagaimanakah saya dapat mengeluarkan elemen dari senarai semasa lelaran di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!