从C#字典中获取密钥

时间:2015-06-16 21:12:12

标签: c# dictionary

可以想象这将是一个非常简单的任务,但是当我运行此代码时,我得到一个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错误。

1 个答案:

答案 0 :(得分:9)

foreach(强调我的)中不允许进行某些操作:

  

foreach 语句用于遍历集合以获取所需信息,但 不能用于添加或删除项 来自源集合,以避免不可预测的副作用。

如果您尝试在healthtop中添加或删除字典元素,则可能会获得

  

System.InvalidOperationException:修改了集合;枚举操作可能无法执行。