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

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

Susan Sarandon
发布: 2025-01-27 13:21:10
原创
843 人浏览过

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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板