如何在不使用foreach的情况下获取System.Collections.Specialized.HybridDictionary中的所有键?
我有一个方法
void Get(IDictionary options)
{
...
}
在调试时,我可以在此方法的主体内设置断点。我希望在Visual Studio 2010的监视窗口中看到options
的所有键。
答案 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>());