2014-10-17 22 views
0

我想下面的值存儲到字典:字典手法在C#

鍵(串) - 值(字符串列表)

aaa - myfirstvalue1 
aaa - myfirstvalue2 

bbb - myfirstvalue3 

ccc - myfirstvalue4 
ccc - myfirstvalue5 

詞典:

Dictionary<string, List<string> myvalues = new Dictionary<string, List<string>>(); 

我試圖存儲這些值,但我得到了重複鍵錯誤。

+0

您是否可以更新您的問題以包含迄今爲止嘗試過的代碼? (即使它不起作用) – 2014-10-17 18:11:54

+0

我想將第一個兩個值存儲在aaa鍵中,第三個值存儲在字典中的bbb鍵中。 – Lemon 2014-10-17 18:13:50

+1

將存儲的值存儲到myvalues列表後,您無法將密鑰 – RadioSpace 2014-10-17 18:14:08

回答

5

字典具有隻能添加一次密鑰的功能。你有正確的類型,但是你添加數據的方式很重要。

可以初始化提供這樣的數據字典:

Dictionary<string, List<string>> myvalues = Dictionary<string, List<string>> 
    { 
     { "aaa", new List<string> { "myfirstvalue1", "myfirstvalue2" } }, 
     { "bbb", new List<string> { "myfirstvalue3" } }, 
     { "ccc", new List<string> { "myfirstvalue4", "myfirstvalue5" } }, 
    }; 

有了這個,每個按鍵都有分配給它的一個字符串列表。您可以添加更多的值是這樣的:

var key = "aaa"; // for example 
if (myvalues.ContainsKey(key) 
{ 
    myvalues[key].Add("new value"); 
} 
else 
{ 
    myvalues.Add(key, new List<string> { "new value" }); 
} 

可以檢索這樣的價值觀:

List<string> aaaVals = myvalues["aaa"]; 

,然後轉換與List.ToArray()List<string>Array

+0

重複。如何檢索基於密鑰的值並存儲到string []數組? – Lemon 2014-10-17 18:16:05

+0

ahh man ..我只是寫了一個類似的方法,以便在關鍵字存在的情況下使字符串變得圓滑。但>非常乾淨。 – RadioSpace 2014-10-17 18:18:54

+0

@檸檬 - 見我的編輯。你可以使用'List.ToArray'方法。 – 2014-10-17 18:19:50