如何在System.Collections.Specialized.HybridDictionary中获取所有密钥?

时间:2012-12-13 11:52:28

标签: visual-studio-2010 c#-4.0 dictionary key

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

我有一个方法

void Get(IDictionary options)
{
...
}

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

1 个答案:

答案 0 :(得分:1)

有一个属性Keys,你在寻找吗?

var allKeys = dict.Keys;

MSDN

  

获取包含ICollection中的键的HybridDictionary

     

未指定ICollection中值的顺序,但它是   与返回的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>());