可以想象这将是一个非常简单的任务,但是当我运行此代码时,我得到一个System.InvalidOperationException:
Dictionary<string, bool> TableExists = new Dictionary<string, bool>();
//... fill the dictionary
foreach(string value in TableExists.Keys){/*Do something*/}
它应该遍历字典TableExists
的键,但我在foreach
行得到无效操作异常。我错误地使用任何字典操作吗?如果是这样,通过C#字典键的正确方法是什么?
编辑:
是的,我试图更改与字典键对应的某些值,导致Collection was modified
错误。
答案 0 :(得分:9)
foreach
(强调我的)中不允许进行某些操作:
foreach 语句用于遍历集合以获取所需信息,但 不能用于添加或删除项 来自源集合,以避免不可预测的副作用。
如果您尝试在healthtop
中添加或删除字典元素,则可能会获得
System.InvalidOperationException:修改了集合;枚举操作可能无法执行。