2011-04-14 36 views
8

मैं Dictionary<string,int> आइटम की सूची बनाने की कोशिश कर रहा हूं। मुझे यकीन नहीं है कि सूची में आइटम कैसे जोड़ना है और सूची को ट्रैक करते समय मूल्यों को वापस कैसे प्राप्त करें। मैं इसे सी # में उपयोग करना चाहता हूं, जैसे:मैं .NET में शब्दकोशों की सूची कैसे बना सकता हूं?

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

किस भाषा में? –

+1

कोड उदाहरण और भाषा टैग कृपया –

+0

मैं इसे सी # में उपयोग करना चाहता हूं। सार्वजनिक सूची की तरह <शब्दकोश > MyList = नई सूची <शब्दकोश >(); – Vivek

उत्तर

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

+0

उत्तर देने के लिए सभी को धन्यवाद। – Vivek

+7

यदि आप खुश हैं तो आपको किसी से जवाब स्वीकार करना चाहिए। और एसओ में आपका स्वागत है! – Jaapjan

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"); 

आनंद लें!

+1

इस बारे में कभी नहीं सुना है! गजब का! बहुत बहुत धन्यवाद :) – IfElseTryCatch

संबंधित मुद्दे