我可以安全地修改 - 我的意思是:删除并重新添加不同的索引位置 - 我在VB中使用For Each
循环迭代的任何项目?我们正在谈论VB Microsoft.VisualBasic.Collection
类。
如果是的话:这是我在构建的设计或实施细节吗?
我可能懒得去搜索,但dox似乎对此没有任何说法。
答案 0 :(得分:2)
IEnumerator<T>
spec表示你不能:
只要集合保持不变,枚举器仍然有效。如果对集合进行了更改,例如添加,修改或删除元素,则枚举数将无法恢复,并且其行为未定义。
某些馆藏可能不遵循此规则。
答案 1 :(得分:2)
在您描述的过程中,您无法修改集合;即,如果没有收到例如“集合已被修改”的异常,则无法删除项目。
这并不是说你根本不能修改这些项目(做一些除了添加/删除之外的事情)。
如果您遇到此错误,请尝试重构您的代码,例如:使用for
循环(通常反过来,以避免偏移索引计数器)。
答案 2 :(得分:0)
不,你不能。而是制作集合的副本以便编辑并在之后使用副本。