How do I create a List of Dictionaries in .NET?

前端 未结 4 2047
清酒与你
清酒与你 2021-02-04 08:42

I am trying to create a List of Dictionary items. I am not sure how to add items in list and how to get back the values while traversing the list.

相关标签:
4条回答
  • 2021-02-04 08:58
       // 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;
    
        }
    
    0 讨论(0)
  • 2021-02-04 09:03

    A lot has changed in 5 years... You can now do the following:

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

    Enjoy!

    0 讨论(0)
  • 2021-02-04 09:20

    I think you have to know in which of the dictinaries you have to add your new value. So The List is the problem. You can't identify the dictionary inside.

    My solution for this would be a dictionary collection class. It could look like this:

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

    then you can use it like this:

    var dictionaryCollection = new DictionaryCollection<int>
                                           {
                                               {"dic1", "Key1", 1},
                                               {"dic1", "Key2", 2},
                                               {"dic1", "Key3", 3},
                                               {"dic2", "Key1", 1}
                                           };
    
    0 讨论(0)
  • 2021-02-04 09:21

    I think this is what you are looking for?

    {
        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 讨论(0)
提交回复
热议问题