2012-03-02 41 views
3

我曾嘗試閱讀關於此主題的其他帖子,無法完全弄清楚這一點。將數組添加到C中的字典中#

我在C#中有一個列表,我想把所有相同的鍵放在字典中。這份名單是這個

string[] IN ={"Against","Like","Upon","Through","Of","With","Upon","On","Into","From","by","that","In","About","For" 
    ,"Along","Before","Beneath","At","Across","beside","After","Though","Among","Toward","If"}; 

我想創建和填充字典,鍵值爲「IN」(數組的名稱),然後爲每個字符串在字典中的數組。

這是我寫的,以創建字典(這我不知道是正確的):

Dictionary<string, List<string>> wordDictionary = new Dictionary<string, List<string>>() 

但我不知道如何來填充字典。

任何幫助將不勝感激,因爲這是我第一次嘗試使用字典,我是新來的C#

+1

你實際上是在試圖添加字符串數組「IN」還是你想說要添加變量的名字?此外,這個要求似乎是一種糟糕的方式來構建事物...我敢打賭,如果你對你正在嘗試完成的事情做出解釋,我們可以提供更好的解決方案。 – 2012-03-02 01:12:23

回答

8

數組是string[],不List<string>,所以才這樣做:

Dictionary<string, string[]> wordDictionary = new Dictionary<string, string[]>(); 

現在,您可以將您的陣列如常。

wordDictionary.Add("IN", IN); 

或者:

wordDictionary.Add("IN", new string[] {"Against","Like","Upon","Through","Of","With","Upon","On","Into","From","by","that","In","About","For","Along","Before","Beneath","At","Across","beside","After","Though","Among","Toward","If"}); 
+0

Minitech,非常感謝!我想現在我的問題是如何訪問字典中數組中的單個字符串? – miltonjbradley 2012-03-02 01:33:48

+0

@miltonjbradley:和其他數組一樣;通過索引('wordDictionary [「IN」] [0] ==「反對」)或循環('foreach(字串詞in wordDictionary [「IN」])')。 – Ryan 2012-03-02 01:40:42

1

您目前有一個字符串陣列,不是列表 - 所以它應該是:

Dictionary<string, string[]> wordDictionary = new Dictionary<string,string[]>() 

然後,你可以添加喜歡的物品:

wordDictionary.Add("IN" , IN); 
1
Dictionary.Add("IN", new List<string>(IN)); 

...如果您想保留字典的當前簽名。

如果將其更改爲Dictionary<string, string[]>那麼你可以:

Dictionary.Add("IN",IN); 
0

你真的需要將數組轉換成字符串?你很可能使用的String [],而不是名單在你的字典裏:

var wordDictionary = new Dictionary<string, string[]>(); 
wordDictionary.Add("IN", IN); 

但是,如果你真的想你的字符串數組轉換成列表:

var wordDictionary = new Dictionary<string, List<string>>(); 
wordDictionary.Add("IN", IN.ToList()); 
0

另一種方式來添加陣列(這是不是列表)的字典是使用集合初始化:

var wordDictionary = new Dictionary<string, string[]> { "IN", IN }; 

這是正是一樣正常方式創建字典,然後CAL ling Add("IN", IN)