当遍历字典或列表或其他集合时,我可以以某种方式检查集合是否被修改了吗?
foreach (var pair in dictionary) {
DoStuff(pair);
if (DictionaryWasModified())
break;
}
如果将DoStuff
添加到字典中或从字典中删除,则在下一个迭代步骤中将引发异常。我想避免例外。
答案 0 :(得分:0)
字典及其迭代器将有关集合自上次迭代以来是否已更改的信息保密,因此您无法访问它。如果您希望能够在变体时安全地遍历一个集合,或者想知道自开始迭代以来它何时发生了变化,则需要创建自己的集合(大概包装一个现有的集合),其中您可以跟踪自己是否已更改,并公开暴露该信息。