2011-04-14 79 views
8

我正在嘗試創建一個Dictionary<string,int>項目的列表。我不知道如何在列表中添加項目以及如何在遍歷列表時返回值。我想在C#中使用它,如下所示:如何在.NET中創建詞典列表?

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

在哪種語言? – 2011-04-14 09:27:25

+1

代碼示例和語言標籤請 – 2011-04-14 09:27:27

+0

我想在C#中使用它。 like public list <字典> MyList =新的列表<字典>(); – Vivek 2011-04-14 09:31:59

回答

18

我想這就是你要找的東西?

{ 
    MyList.Add(new Dictionary<string,int>()); 
    MyList.Add(new Dictionary<string,int>()); 
    MyList[0].Add("Dictionary 1", 1); 
    MyList[0].Add("Dictionary 1", 2); 
    MyList[0].Add("Dictionary 2", 3); 
    MyList[0].Add("Dictionary 2", 4); 
    foreach (var dictionary in MyList) 
     foreach (var keyValue in dictionary) 
      Console.WriteLine(string.Format("{0} {1}", keyValue.Key, keyValue.Value)); 
} 
+0

是接近你答案的東西。謝謝你的回覆。 – Vivek 2011-04-14 09:41:39

+0

謝謝大家的回覆。 – Vivek 2011-04-14 09:44:20

+7

如果你感到快樂,你應該接受某人的回答。歡迎來到SO! – Jaapjan 2011-04-14 09:52:50

4

我認爲你必須知道在哪個官吏中你必須添加新的價值。所以列表是問題。你不能識別裏面的字典。

我的解決方案將是一個字典集合類。 它看起來是這樣的:

public class DictionaryCollection<TType> : Dictionary<string,Dictionary<string,TType>> { 
    public void Add(string dictionaryKey,string key, TType value) { 

     if(!ContainsKey(dictionaryKey)) 
      Add(dictionaryKey,new Dictionary<string, TType>()); 

     this[dictionaryKey].Add(key,value); 
    } 

    public TType Get(string dictionaryKey,string key) { 
     return this[dictionaryKey][key]; 
    } 
} 

那麼你可以使用它像這樣:

var dictionaryCollection = new DictionaryCollection<int> 
             { 
              {"dic1", "Key1", 1}, 
              {"dic1", "Key2", 2}, 
              {"dic1", "Key3", 3}, 
              {"dic2", "Key1", 1} 
             }; 
1
// Try KeyValuePair Please.. Worked for me 


    private List<KeyValuePair<string, int>> return_list_of_dictionary() 
    { 

     List<KeyValuePair<string, int>> _list = new List<KeyValuePair<string, int>>(); 

     Dictionary<string, int> _dictonary = new Dictionary<string, int>() 
     { 
      {"Key1",1}, 
      {"Key2",2}, 
      {"Key3",3}, 
     }; 



     foreach (KeyValuePair<string, int> i in _dictonary) 
     { 
      _list.Add(i); 
     } 

     return _list; 

    } 
8

很多在5年內發生了變化......現在,您可以執行以下操作:

ListDictionary list = new ListDictionary(); 
list.Add("Hello", "Test1"); 
list.Add("Hello", "Test2"); 
list.Add("Hello", "Test3"); 

Enjoy!

+1

從來沒有聽說過這個!驚人!非常感謝 :) – IfElseTryCatch 2017-05-19 08:07:53