删除 arrayList 中的元素后出现 InvalidOperationException [重复]

2023-12-07

您好,我正在尝试从 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;
    }

我怎样才能解决这个问题,这样我就不会出现异常并且能够删除所有可被二整除的元素?


尝试以这种方式迭代它。

for(int i = 0; i < list.Count(); i++){
   if ((list[i] > 2) && (list[i] % 2 == 0)) {
                list.RemoveAt(i); 
                i--; //as offsets have shifted by one due to removal
            }
}

您不再迭代列表。所以这应该有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

删除 arrayList 中的元素后出现 InvalidOperationException [重复] 的相关文章

随机推荐