2013-04-08 113 views
-2

您好,我正在嘗試爲這個複雜的對象添加值。我試圖用JSON.Net將這個對象變成JSON。如何使用字典列表將內容添加到Dictionary中

Dictionary<string, List<Dictionary<string, int>>> MyList 
    = new Dictionary<string, List<Dictionary<string, int>>>(); 

最終的結果應該是這個樣子:{ "Documents": [ { "Title": , "DatePublished": , "DocumentURL": , "ThumbnailURL": , "Abstract": , "Sector": "", "Country": [ "" ], "Document Type": "" } 我都試過,但沒有奏效:

MyList["Dictionary"][0].Add("test", 4); 
+0

請你可以發佈你的代碼?你有什麼問題? – 2013-04-08 14:37:59

+0

爲什麼你需要有一本詞典列表詞典?也許沒有更好的,更可讀的選項? – 2013-04-08 14:39:43

+0

只需在外面開始您的工作。將項目添加到外部集合中,您可以在其中創建一個集合,然後爲下一個級別創建集合,然後可以將項目添加到最低級別。 – Servy 2013-04-08 14:42:55

回答

3

如果你有Dictionary<string, int> dictA您可以通過

Dictionary<string, int> dictA = new Dictionary<string, int>(); 
dictA.Add("SomeString", 99); 

然後向該項目添加到添加此字典您List<Dictionary<string, int>>使用以下

List<Dictionary<string, int>> dictList = new List<Dictionary<string, int>>(); 
dictList.Add(dictA); 

現在,您可以將它添加到您的Dictionary<string, List<Dictionary<string, int>>> myList對象通過

Dictionary<string, List<Dictionary<string, int>>> myList = 
    new Dictionary<string, List<Dictionary<string, int>>>(); 
myList.Add("SomeString", dictList); 

我希望這可以幫助。

+0

非常感謝你,這對我有效。 – Kreston 2013-04-08 15:02:57

1
MyList.Add("key1", new List<Dictionary<string, int>()); 
MyList["key1"].Add(new Dictionary<String, int>()); 

將需要您詳細給予比我害怕的更多的東西。

+0

謝謝你讓我走上了正確的軌道 – Kreston 2013-04-08 15:03:13

1

對於它的價值,這裏有一個樣品環,其展示瞭如何使用Dictionary.AddCollection Initalizer

Dictionary<string, List<Dictionary<string, int>>> MyList = 
    new Dictionary<string, List<Dictionary<string, int>>>(); 

foreach (int i in Enumerable.Range(1, 100)) 
{ 
    var list = new List<Dictionary<string, int>>(); 
    foreach (int ii in Enumerable.Range(1, 100)) 
     list.Add(new Dictionary<string, int>() { { "Item " + ii, ii } }); 
    MyList.Add("Item " + i, list); 
} 
1

即使它看起來複雜,其實是很簡單的:

你的字典需要鑰匙string,值爲List<Dictionary<string, int>>。因此要添加一個,該值應始終爲List<Dictionary<string, int>>