2010-05-28 59 views
1

相同的鍵添加更多的值我有一本字典一樣在字典(C#3.0)

public Dictionary<DateTime, Dictionary<string, string>> dicCollection 

我怎麼可以添加更多的值在本詞典相同的密鑰?

使用C#3.0

+1

你想添加哪些字典值,內部或外部? – 2010-05-28 12:46:40

回答

2

如果你想值的例子添加到外字典,你可以使用這樣的代碼:

if(dicCollection.ContainsKey(someDateTime)) 
    dicCollection[someDateTime].Add("key","value"); 
else 
{ 
    Dictionary<string, string> newInner = new Dictionary<string, string>(); 
    newInner.Add("key","value"); 
    dicCollection.Add(someDateTime, newInner); 
} 

這將確保當新密鑰被添加到外部字典時,內部字典不會爲空(如果它爲null,則調用Add將引發空引用異常)。

+0

對不起,該帖子是不正確的,從此以後,字典簽名不正確。我只是修改了這一點。 – Newbie 2010-05-28 12:46:49

3

如果你想爲一個鍵多個值,你需要把這些值到一個集合或創建一個包含所有你需要的數據成員的對象。

這可能是最簡單的只是你的值更改爲列表<>:

public Dictionary<DateTime, List<Dictionary<string, string>>> myDictionary; 
+0

對不起,這篇文章是不正確的,從此以後,字典簽名不能正常發揮。我只是修改了這一點。 – Newbie 2010-05-28 12:46:06

0

您可以聲明一個字典,其中值存儲在列表中。 類似的東西來:

Dictionary<string,List<int>> dict ...

+0

對不起,這篇文章是不正確的,從此以後,字典簽名不適當。我只是修改了這一點。 – Newbie 2010-05-28 12:46:29

0

,字典的​​鍵和關聯值集。一個鍵不能有多個值。原因在於,當您通過鍵檢索值時,只返回一個值。字典如何知道你想要哪個值?

您可能想要將值類型實現爲集合。通過這種方式,您可以檢索與一個鍵關聯的多個值。所以你可以把它定義爲一個對象的值列表:

Dictionary<String,List<Object>> myDictionary; 

這就是我會做的。

0

以下代碼將查找外部字典中的條目並將新條目添加到其內部字典中。那是你要的嗎?

dicCollection[specificDateValue].Add(newKey, newValue) 

記住,你應該先爲specificDateValue的存在檢查通過調用dicCollection.ContainsKey(specificDateValue),然後通過調用其ContainsKeynewKey做在內部字典一樣。