0

如何在不使用 foreach 的情况下获取 System.Collections.Specialized.HybridDictionary 中的所有键?

我有一个方法

void Get(IDictionary options)
{
...
}

在调试时,我可以在此方法的主体内设置断点。我想options在 Visual Studio 2010 的监视窗口中查看所有键。

4

1 回答 1

1

有楼盘Keys,你在找吗?

var allKeys = dict.Keys;

MSDN

获取ICollection包含 中的键的HybridDictionary

ICollection 中值的顺序未指定,但它与由 Values 方法返回的 ICollection 中的关联值的顺序相同。

检索此属性的值是 O(1) 操作。

如果您想像访问它一样访问它List(从上面引用的 msdn 的备注部分可以看出,这不一定是个好主意):

var allKeys = new List<object>(dict.Keys.Count);
allKeys.AddRange(dict.Keys.Cast<object>());

(无论如何都隐含地使用循环)

编辑

实际上,我需要在 Visual Studio 2010 中调试时查看监视窗口中的所有键。我不能在监视窗口中使用 foreach 和 List。

然后在快速监视窗口中执行此操作:

string.Join("," , dict.Keys.Cast<object>());
于 2012-12-13T11:54:28.600 回答