从 C# 字典中获取密钥

本文关键字:获取 密钥 字典 | 更新日期: 2023-09-27 17:56:42

有人会认为这将是一项非常简单的任务,但是当我运行此代码时,我得到了一个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错误。

从 C# 字典中获取密钥

某些操作在foreach内是不允许的(强调我的):

foreach 语句用于循环访问集合以获取所需的信息,但不能用于在源集合中添加或删除项以避免不可预知的副作用。

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

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