首页 >后端开发 >C++ >如何在迭代期间安全地从通用列表中删除项目?

如何在迭代期间安全地从通用列表中删除项目?

Patricia Arquette
Patricia Arquette原创
2025-01-31 02:01:09855浏览

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