Rumah >pembangunan bahagian belakang >C++ >Bagaimana cara menghapuskan elemen dari senarai generik dengan selamat semasa meleleh?

Bagaimana cara menghapuskan elemen dari senarai generik dengan selamat semasa meleleh?

Barbara Streisand
Barbara Streisandasal
2025-01-31 01:46:09668semak imbas

How to Safely Remove Elements from a Generic List While Iterating?

Semasa proses berulang, elemen senarai generik dengan selamat dikeluarkan

Dalam banyak senario pengaturcaraan, unsur -unsur dalam senarai perlu diproses. Walau bagaimanapun, jika unsur -unsur tertentu perlu dikeluarkan semasa proses ini, kaedah standard mungkin mempunyai masalah.

Penggunaan

dalam kitaran akan menyebabkan keabnormalan, dan kaunter penurunan dan penggunaan

akan memusnahkan kedudukan set semasa. foreach .Remove(element) Penyelesaian yang lebih elegan ialah senarai lelaran terbalik: .RemoveAt(i)

Ini memastikan bahawa elemen penyingkiran tidak menjejaskan kedudukan semasa dalam senarai.

<code class="language-csharp">for (int i = safePendingList.Count - 1; i >= 0; i--)
{
    // 处理元素

    // 如需移除元素
    // safePendingList.RemoveAt(i);
}</code>
atau, kaedah membolehkan penapisan elemen mengikut predikat:

Contoh berikut menunjukkan penggunaan kaedah kitaran RemoveAll:

<code class="language-csharp">safePendingList.RemoveAll(item => item.Value == someValue);</code>

output: for

Atas ialah kandungan terperinci Bagaimana cara menghapuskan elemen dari senarai generik dengan selamat semasa meleleh?. 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