首頁 >後端開發 >C++ >如何在迭代期間安全地從通用列表中刪除項目?

如何在迭代期間安全地從通用列表中刪除項目?

Patricia Arquette
Patricia Arquette原創
2025-01-31 02:01:09875瀏覽

How to Safely Remove Items from a Generic List During Iteration?

在迭代期間從列表中刪除項目時,

> >修改列表在迭代時通常會導致“收集已修改;枚舉操作可能不會執行”錯誤。發生這種情況是因為刪除項目使迭代器無效。 這是安全刪除元素的方法:

方法1:反向迭代

> 向後迭代會在刪除項目時防止索引問題。 此方法適用於簡單的刪除標準。

<code class="language-csharp">for (int i = safePendingList.Count - 1; i >= 0; i--)
{
    // Check removal condition
    if (shouldRemove)
    {
        safePendingList.RemoveAt(i);
    }
}</code>
方法2:

方法RemoveAll> 對於更複雜的刪除邏輯,方法提供了一個更清潔的解決方案。 它採用謂詞(如果要刪除項目,則返回true的函數)並有效地刪除了所有匹配元素。

RemoveAll摘要:

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

這些方法允許在迭代過程中安全有效地從列表中刪除元素,從而消除了運行時例外的風險。選擇最適合您的刪除標準和編碼樣式的方法。 >

以上是如何在迭代期間安全地從通用列表中刪除項目?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn