2011-04-14 34 views
8

Dictionary<string,int> öğesinin bir listesini oluşturmaya çalışıyorum. Listede öğeleri nasıl ekleyeceğimi ve listeyi geçerken değerlerin nasıl geri alınacağını bilmiyorum. Ben C# olarak kullanmak istiyorum, böyle:.NET'de bir sözlük listesi nasıl oluştururum?

+1

Hangi dilde? –

+1

kod örneği ve dil etiketi lütfen –

+0

C# 'da kullanmak istiyorum. public List > MyList = yeni Liste >(); – Vivek

cevap

18

Bence bu aradığın şey mi?

{ 
    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

evet cevabınıza yakın bir şey. Cevabınız için teşekkürler. – Vivek

+0

Yanıtladığınız için teşekkürler. – Vivek

+7

Eğer mutlu isen birinden bir cevap kabul etmelisin. Ve SO'ya hoş geldiniz! – Jaapjan

4

Dedikodulardan hangilerinin yeni değerini eklemeniz gerektiğini bilmelisiniz. Yani liste problemdir. İçerideki sözlüğü belirleyemezsiniz.

Bunun için benim çözümüm sözlük toplama sınıfı olabilir. Bu gibi görünebilir:

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]; 
    } 
} 

o zaman bu gibi kullanabilirsiniz:

var dictionaryCollection = new DictionaryCollection<int> 
             { 
              {"dic1", "Key1", 1}, 
              {"dic1", "Key2", 2}, 
              {"dic1", "Key3", 3}, 
              {"dic2", "Key1", 1} 
             }; 
Bir çok 5 yıl içinde değişti
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

... Artık aşağıdakileri yapabilirsiniz:

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

+1

Bunu hiç duymadım! Şaşırtıcı! Çok teşekkürler :) – IfElseTryCatch

İlgili konular