foreach
循环内的列表在C#/.NET 4.0中,可以在foreach
循环期间修改可枚举对象而不会遇到异常。Paul Jackson的博客文章对此进行了详细讨论。
然而,一个常见的问题出现了:修改foreach
循环内的列表,尤其是在嵌套foreach
场景中,最佳方法是什么?
传统上,IList
通常用作缓存或缓冲区,以累积更改,直到外部foreach
循环结束。但是还有更好的替代方案吗?
必须注意,在foreach
循环中迭代的集合在设计上是不可变的。正如MSDN文档中所述,foreach
旨在访问数据,而不是修改源集合以防止不可预测的副作用。
如果需要向源集合添加或删除项目,建议改用for
循环。这确保了对集合进行可预测和受控的修改。
Poko链接的博客文章表明,此限制可能不适用于C#/.NET 4.0中引入的并发集合。
以上是如何在 C# 中安全地修改嵌套 `foreach` 循环内的列表?的详细内容。更多信息请关注PHP中文网其他相关文章!