无法在Visual Studio调试器中查看字典内容

时间:2014-11-04 16:17:16

标签: c# visual-studio dictionary idictionary debuggervisualizer

我的代码中有一个System.Collections.Generic.Dictionary对象,我试图在Visual Studio调试器中的断点处停止时查看其内容。 .NET中的Dictionary类当然包含键和值列表。

如果我右键单击加载的对象,并尝试深入查看其内容,我似乎陷入无限循环。例如,如果我试图查看包含的键,我会展开Keys元素,它显示一个计数,另一个集合称为“非公共成员”。我展开后者,并获得另一个字典对象,它有一个Keys元素,我可以扩展它以获得另一个“count”和“Non-Public members”的实例,我可以展开,等等,等等。 p>

Dictionary expansion in Visual Studio debugger

使用QuickWatch给出了相同的结果,那么如何实际查看对象中包含的键呢?

1 个答案:

答案 0 :(得分:3)

我知道在Visual Studio的更高版本中修复了此问题。但是,对于我们中的一些卡在旧版VS中的人来说,这是一个快速修复,可以看到字典的键。

假设我们有一个名为'dict'的字典。我们需要键来查看值。所以在观察窗口中这样做:

dict.Keys.ToList()

这将允许您深入查看列表并查看密钥。

如果您知道所需密钥的索引,请执行以下操作:

dict.Keys.ToList()[1]

这将显示索引1处的键。

现在您可以使用该密钥并查看其值:

dict[dict.Keys.ToList()[1]]

当然,如果更容易,您可以使用另一个监视行中的实际键值将索引替换为键列表。

编辑: 此外,还可以在监视窗口中查看具有以下内容的字典条目:

'dict.entries'

这将为您提供要查看的条目列表。每个条目都有一个'key'和'value'属性。