循环 删除List 里的数据 会出现什么样的问题,如何删除list里指定的几条数据?

2025-06-21 12:31:13
推荐回答(4个)
回答1:

从大到小删除,如:
a.RemoveAt(12);a.RemoveAt(8);a.RemoveAt(1);
因为你先删除1,8就变成7了,删除位置改变了
如果用循环,只能用for从大到小循环,不能用foreach,因为foreach不允许修改遍历的集合
for(int i=a.Length -1;i>=0;i--){
if(条件)a.RemoveAt(i);
}

回答2:

for(int i =0 ;i{
if(i== 1 || i== 8 || i==12)
a.set(i,null);//将下标1和8和12的值赋null
}
为什么要赋空值而不是直接移除掉呢,因为如果直接删除的话那么下标所对应的值就会变化
(应该明白这句话什么意思吧)

回答3:

把你要删除的那些对象加到另一个集合里面,比如叫 listdel ,然后你循环这个集合,
用 a.Remove(对象),就可以了,不用管索引了

回答4:

要删除的那些对象加到另一个集合里面