Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya dapat mengeluarkan elemen dari senarai semasa lelaran di C#?

Bagaimanakah saya dapat mengeluarkan elemen dari senarai semasa lelaran di C#?

Linda Hamilton
Linda Hamiltonasal
2025-01-31 01:56:09234semak imbas

How Can I Safely Remove Elements from a List During Iteration in C#?

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>

Masalah biasa timbul apabila menggunakan

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>
Kaedah ini bermula dari akhir, mengeluarkan unsur -unsur tanpa menjejaskan indeks berikutnya.

penyelesaian 2: kaedah RemoveAll()

Pendekatan yang lebih ringkas dan mudah dibaca menggunakan kaedah

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>
ini dengan elegan menghilangkan semua elemen yang memenuhi syarat yang diberikan (

dalam kes ini). Ia biasanya lebih disukai untuk kejelasan dan kecekapannya. i > 5

Kedua -dua kaedah menyediakan cara yang boleh dipercayai untuk menghapuskan unsur -unsur dari senarai semasa lelaran, mencegah pengecualian dan memastikan integriti data. Kaedah

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!

Kenyataan:
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