假设我有以下代码片段:
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(使用前将#替换为@)