gpt4 book ai didi

c# - Foreach 同时将项目添加到循环集合

转载 作者:太空宇宙 更新时间:2023-11-03 17:19:25 26 4
gpt4 key购买 nike

情况是这样的:

我正在浏览一些代码,我想知道以下语句是否引用了所选集合或一个副本,当 foreach 循环完成时,它用它来替换原始对象。如果是第一个,它会获取新找到的页面并将它们加入循环吗?

foreach(Page page in Pages)
{
page.AddRange(RetrieveSubPages(page.Id));
}

编辑:对不起,我打错了。

应该是这样的:

foreach(Page page in pages)
{
pages.AddRange(RetrieveSubPages(page.Id));
}

我想说的是,如果我将一些对象添加到枚举集合中,它会在 foreach 中加入这些对象吗?

最佳答案

看起来代码并没有修改Pages集合,而是修改了Pages中的Page对象的内容收藏。 Page 类型至少具有类似集合的方法。

一般来说,每个集合都以适合自己的方式实现迭代,并且通常在迭代时变得不可修改,但是可以通过拍摄自身的快照来实现迭代的集合。

没有检测循环退出的机制,允许在该点采取行动(考虑这将如何与异常交互,在循环体中中断和返回)。

关于c# - Foreach 同时将项目添加到循环集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1425932/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com