1、我们选择用for循环:
for(int i=0;i<list.count;i++) { if(list[i]) { list.RemoveAt(i); } }
如果这样循环,,必定不同错误,
{A B C D E F G H} 假设当前遍历到D(i=3),移除,接着遍历i=4(F), 此时跳过了E(i=3)
2、我们使用倒序遍历,这个问题就解决了
for(int i=list.Count-1;i>=0;i--) { if(list[i]) { list.RemoveAt(i); } }