C#嵌套字典
问题描述:
我的语法有什么问题?我希望能够用这个info["Gen"]["name"]
C#嵌套字典
public var info = new Dictionary<string, Dictionary<string, string>> {
{"Gen", new Dictionary<string, string> {
{"name", "Genesis"},
{"chapters", "50"},
{"before", ""},
{"after", "Exod"}
}},
{"Exod", new Dictionary<string, string> {
{"name", "Exodus"},
{"chapters", "40"},
{"before", "Gen"},
{"after", "Lev"}
}}};
答
来获取值“创世纪”,则不能定义使用var
类字段。
变化var
到Dictionary<string, Dictionary<string, string>>
:
public Dictionary<string, Dictionary<string, string>> info =
new Dictionary<string, Dictionary<string, string>>
{
{
"Gen",
new Dictionary<string, string>
{
{"name", "Genesis"},
{"chapters", "50"},
{"before", ""},
{"after", "Exod"}
}
},
{
"Exod",
new Dictionary<string, string>
{
{"name", "Exodus"},
{"chapters", "40"},
{"before", "Gen"},
{"after", "Lev"}
}
}
};
,了解更多有关var
关键字及其用法见here。
答
从MSDN
;当一个局部变量的声明和初始化在同一语句
VAR只能用;该变量不能被初始化为空,或者被方法组或匿名函数所使用。
var不能用于类范围的字段。
使用var声明的变量不能在初始化 表达式中使用。
只要改变你的var
到Dictionary<string, Dictionary<string, string>>
。喜欢;
public Dictionary<string, Dictionary<string, string>> info =
new Dictionary<string, Dictionary<string, string>>{}
你会得到什么编译器错误? – 2013-03-19 13:44:36
你在'var'这个词上得到了一个编译错误..? – MethodMan 2013-03-19 13:45:13
除了错误的实际原因之外,当你真的想要一个简单的'Chapter'类时,为什么你会使用'Dictionary'作为值呢? –
2013-03-19 13:46:46