【发布时间】:2012-10-10 20:49:43
【问题描述】:
您好,我正在尝试从 arrayList 中删除所有可被 2 整除的数字。问题是在删除一个元素后,我得到了 InvalidOperationException。
private ArrayList RemoveDivTwo(ArrayList list) {
int count = 0;
foreach(int i in list){
if ((i > 2) && (i % 2 == 0)) {
list.RemoveAt(count);
}
count++;
}
return list;
}
我怎样才能解决这个问题,这样我就不会得到异常并且能够删除所有可被二整除的元素?
【问题讨论】:
-
这是一个常见的。请记住,如果您使用
foreach进行迭代,则无法在集合中添加/删除项目。 -
如果你在想,为什么这是一个无效的操作,请阅读这个stackoverflow.com/questions/1124221/…
-
ArrayList不是首选的集合类型,除非您使用的是旧版 1.1 代码。请改用List<int>。使用List<int>,您的代码可以重写为list.RemoveAll(i => i > 2 && i % 2 == 0)
标签: c#