В C# вложенные словари
что не так с моим синтаксис? Я хочу иметь возможность получить значение "Genesis" с этим info["Gen"]["name"]
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"}
}}};
2 ответов
вы не можете определить поле класса с помощью var
.
изменить var
to 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
ключевое слово и его использование.
С MSDN
;
var может использоваться только при объявлении и инициализации локальной переменной в том же операторе; переменная не может быть инициализирована в null, или группе методов или анонимной функции.
var нельзя использовать для полей в области класса.
переменные, объявленные с помощью var, не могут использоваться в инициализация выражение.
просто изменить свой var
to Dictionary<string, Dictionary<string, string>>
. Как;
public Dictionary<string, Dictionary<string, string>> info =
new Dictionary<string, Dictionary<string, string>>{}