首页 > 后端开发 > C++ > 在C#迭代期间,如何将元素安全地从列表中删除?

在C#迭代期间,如何将元素安全地从列表中删除?

Linda Hamilton
发布: 2025-01-31 01:56:09
原创
250 人浏览过

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

>在迭代期间有效从C列表中删除元素 >在使用标准方法迭代时修改列表通常会导致

>错误。 本文提出了干净的解决方案,以根据条件安全地从a

中删除元素。InvalidOperationException List<T>在A

>中使用List<T>.Remove()>>>>>>标准环路时,出现了常见问题。 索引转移会引起问题。List<T>.RemoveAt() foreachfor解决方案1:反向迭代

> >使用A 循环向后迭代避免索引问题:>

此方法从末端开始,删除元素而不会影响后续索引。 for

解决方案2:
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));
登录后复制
方法

> 一种更简洁,更可读的方法是使用带有谓词的RemoveAll()>方法:>

这优雅地消除了满足给定条件的所有元素(在这种情况下为

)。 通常,它的清晰度和效率是首选。RemoveAll()>

>两种方法都提供了可靠的方法,可以在迭代期间从列表中删除元素,防止异常并确保数据完整性。
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));
登录后复制
方法通常是其简单性和可读性的首选选择。

>

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

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