C# 列表 - 在循环/迭代时删除项目[重复]

2024-03-25

假设我有以下代码片段:

var data=new List<string>(){"One","Two","Three"};
for(int i=0 ; i<data.Count ; i++){
  if(data[i]=="One"){
    data.RemoveAt(i);
  }
}

下面的代码抛出异常。

我的问题是避免此异常并在循环时删除元素的最佳方法是什么?


如果需要删除元素,则必须向后迭代,以便可以从列表末尾删除元素:

var data=new List<string>(){"One","Two","Three"};
for(int i=data.Count - 1; i > -1; i--)
{
    if(data[i]=="One")
    {
        data.RemoveAt(i);
    }
}

然而,有更有效的方法可以使用 LINQ 来做到这一点(如其他答案所示)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 列表 - 在循环/迭代时删除项目[重复] 的相关文章

随机推荐