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