在调试时,我想看看我的InitParams集合中的键是什么 - 我似乎无法列出它们。
编辑:
正如Jon在下面建议的那样,这可能是Silverlight调试器中的一个错误。要重现,只需在Visual Studio 2010中创建一个新的Silverlight应用程序 ,只需编辑代码
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
var dictionary = new Dictionary<string, string> {{"A", "1"}, {"B", "2"}, {"C", "3"}};
}
}
}
答案 0 :(得分:4)
假设您只需要密钥,请使用Keys
属性:
foreach (string key in dict.Keys)
{
...
}
如果您想在即时窗口中以易于阅读的方式获取所有密钥,您可以使用:
string.Join(";", dict.Keys)
或pre-.NET 4:
string.Join(";", dict.Keys.ToArray())
...或者如果您使用的是.NET 2,可以这样:
string.Join(";", new List<string>(dict.Keys).ToArray())
如果您想同时获取值,可以根据Yaakov的答案迭代KeyValuePair
条目。
编辑:说实话,我希望期望 Visual Studio默认为您的字典显示一个很好的代表。例如,这就是我在VS2008中看到的:
...我刚刚在VS2010中尝试了它并看到了相同的结果。在调试常规选项下,您是否勾选了“在变量窗口中显示对象的原始结构”?如果是这样,请取消它。
答案 1 :(得分:1)
编程方式:
foreach (KeyValuePair<string,string> param in InitParams) {
Debug.Writeline(param.Key + ": " + param.Value);
}
在调试器中,深入了解InitParams&gt;值&gt;非公开会员&gt;字典。它应该最终出现。
在立即窗口中,尝试使用InitParams["abc"]
之类的内容来显示第一个项目的值,其中&#34; abc&#34;是该集合中的已知密钥。如果您不知道集合中Keys的名称,那么使用上面的编程方法将所有值写入Debug窗口。