2013-03-19 154 views
4

我的語法有什麼問題?我希望能夠用這個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"} 
    }}}; 
+4

你會得到什麼編譯器錯誤? – 2013-03-19 13:44:36

+2

你在'var'這個詞上得到了一個編譯錯誤..? – MethodMan 2013-03-19 13:45:13

+3

除了錯誤的實際原因之外,當你真的想要一個簡單的'Chapter'類時,爲什麼你會使用'Dictionary '作爲值呢? – 2013-03-19 13:46:46

回答

22

來獲取值「創世紀」,則不能定義使用var類字段。

變化varDictionary<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

1

MSDN;當一個局部變量的聲明和初始化在同一語句

  • VAR只能用;該變量不能被初始化爲空,或者被方法組或匿名函數所使用。

  • var不能用於類範圍的字段。

  • 使用var聲明的變量不能在初始化 表達式中使用。

只要改變你的varDictionary<string, Dictionary<string, string>>。喜歡;

public Dictionary<string, Dictionary<string, string>> info = 
    new Dictionary<string, Dictionary<string, string>>{}