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

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

Patricia Arquette
发布: 2025-01-31 02:01:09
原创
876 人浏览过

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

在迭代期间从列表中删除项目时,

> >修改列表在迭代时通常会导致“收集已修改;枚举操作可能不会执行”错误。发生这种情况是因为删除项目使迭代器无效。 这是安全删除元素的方法:

方法1:反向迭代

> 向后迭代会在删除项目时防止索引问题。 此方法适用于简单的删除标准。

for (int i = safePendingList.Count - 1; i >= 0; i--)
{
    // Check removal condition
    if (shouldRemove)
    {
        safePendingList.RemoveAt(i);
    }
}
登录后复制
方法2:

方法RemoveAll> 对于更复杂的删除逻辑,方法提供了一个更清洁的解决方案。 它采用谓词(如果要删除项目,则返回true的函数)并有效地删除了所有匹配元素。

RemoveAll摘要:

safePendingList.RemoveAll(item => item.Value == someValue);
登录后复制

这些方法允许在迭代过程中安全有效地从列表中删除元素,从而消除了运行时例外的风险。选择最适合您的删除标准和编码样式的方法。>

以上是如何在迭代期间安全地从通用列表中删除项目?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板