foreach(T value in new List<T>(oldList) )

当oldList包含一百万个对象T时,这样做是危险的(代价高昂)。

更普遍地说,鉴于可以在枚举期间添加/删除元素,因此最好的方法是对oldList进行枚举...

最佳答案

一般规则是,您不应修改要枚举的集合。如果要执行类似的操作,请保留另一个集合,该集合将跟踪要从原始集合中添加/删除哪些元素,然后从循环中退出后,对原始集合执行添加/删除操作。

关于C#阻止Collection被修改的异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5002358/

10-10 18:37