遍历list时删除元素的正确做法

时间:2021-10-14 16:41:27

我们往往会遇到需要删除list中满足条件的元素。举例:

List<string> list_str =new List<string>()
{
"A","B","B","C","D"
}

不能用foreach,因为在迭代的过程中修改元素会使程序崩溃,

也不能直接for循环,因为循环过程中会跳过第二个“B”,导致没删干净

想要删除所有的B,最好用for循环倒序遍历的办法:

for(int i=list_str.Count-1;i>=0;i--)
{
if(list_str[i]=="B")
{
list_str.remove(i);
}
}