从C#字典中获取密钥

从C#字典中获取密钥,c#,dictionary,C#,Dictionary,有人会认为这是一项非常简单的任务,但当我运行以下代码时,我得到了System.InvalidOperationException: Dictionary<string, bool> TableExists = new Dictionary<string, bool>(); //... fill the dictionary foreach(string value in TableExists.Keys){/*Do something*/} Dictionary Tab

有人会认为这是一项非常简单的任务,但当我运行以下代码时,我得到了System.InvalidOperationException:

Dictionary<string, bool> TableExists = new Dictionary<string, bool>();
//... fill the dictionary
foreach(string value in TableExists.Keys){/*Do something*/}
Dictionary TableExists=new Dictionary();
//... 查字典
foreach(TableExists.Keys中的字符串值){/*执行操作*/}
它应该遍历dictionary
TableExists
的键,但是我在
foreach
行得到了无效的操作异常。我是否错误地使用了任何字典操作?如果是的话,正确的方法是什么

编辑:


是的,我试图更改与字典键对应的一些值,获取的
集合被修改
错误。

某些操作不允许在(我的):

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

如果您试图在
foreach
中添加或删除字典元素,您可能会得到

System.InvalidOperationException:集合已修改;枚举操作不能执行


您显示的代码没有问题。一定发生了其他事情。Do Something中的内容可能对您的问题很重要。堆栈跟踪是什么?可能与此错误有关:。谢谢你的帮助。别对我投反对票,兄弟,别对我投反对票!谁会添加更多当答案是评论的时候,这到底是怎么在一分钟内得到8张赞成票的?是的,这是一个错误。谢谢你的帮助。当我有能力这样做时,将标记为正确。