标签: c# foreach
当我修改集合时,我正在使用foreach进行迭代,我得到了一个例外。所以我只是好奇foreach(或运行时)如何检测到它。是否可以使用一般对象?
foreach
答案 0 :(得分:15)
集合本身必须检测它。在标准库集合中,这是通过具有由每个操作修改的内部版本号来实现的,并且在每次迭代时由迭代器检查(即每次调用MoveNext时它检查版本号是否相同就像创建迭代器时一样。)
MoveNext