首页 >后端开发 >C++ >如何在 C# 中安全地修改嵌套 `foreach` 循环内的列表?

如何在 C# 中安全地修改嵌套 `foreach` 循环内的列表?

Susan Sarandon
Susan Sarandon原创
2025-01-27 13:21:10849浏览

How to Safely Modify Lists Inside Nested `foreach` Loops in C#?

在C#中安全修改foreach循环内的列表

在C#/.NET 4.0中,可以在foreach循环期间修改可枚举对象而不会遇到异常。Paul Jackson的博客文章对此进行了详细讨论。

然而,一个常见的问题出现了:修改foreach循环内的列表,尤其是在嵌套foreach场景中,最佳方法是什么?

传统上,IList通常用作缓存或缓冲区,以累积更改,直到外部foreach循环结束。但是还有更好的替代方案吗?

解答

必须注意,在foreach循环中迭代的集合在设计上是不可变的。正如MSDN文档中所述,foreach旨在访问数据,而不是修改源集合以防止不可预测的副作用。

如果需要向源集合添加或删除项目,建议改用for循环。这确保了对集合进行可预测和受控的修改。

Poko链接的博客文章表明,此限制可能不适用于C#/.NET 4.0中引入的并发集合。

以上是如何在 C# 中安全地修改嵌套 `foreach` 循环内的列表?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn