一尘不染

集合已修改;枚举操作可能不在ArrayList中执行[重复]

c#

我正在尝试从中删除一个项目,但出现ArrayList此异常:
Collection was modified; enumeration operation may not execute.

有任何想法吗?


阅读 203

收藏
2020-05-19

共1个答案

一尘不染

您在期间要删除商品foreach,是吗?简单地说,你做不到。这里有一些常用选项:

  • 使用List<T>RemoveAll与谓语
  • 按索引向后迭代,删除匹配项

    for(int i = list.Count - 1; i >= 0; i--) {
    if({some test}) list.RemoveAt(i);
    

    }

  • 使用foreach,并将匹配项放入第二个列表中;现在枚举第二个列表,并从第一个列表中删除那些项目(如果您明白我的意思)

2020-05-19