web-dev-qa-db-ja.com

.NETで辞書のリストを作成するにはどうすればよいですか?

Dictionary<string,int>アイテムのリストを作成しようとしています。リストに項目を追加する方法と、リストをトラバースしながら値を取得する方法がわかりません。次のようにC#で使用したいと思います。

public List<Dictionary<string,int>> MyList= new List<Dictionary<string,int>>();
12
Vivek

5年間で大きく変化しました...次のことが可能になりました。

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

楽しい!

22
calcazar

これはあなたが探しているものだと思いますか?

{
    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));
}
22
Jaapjan

私はあなたがあなたの新しい価値を追加しなければならない独裁者で知っている必要があると思います。リストが問題です。内部の辞書を特定できません。

これに対する私の解決策は、辞書コレクションクラスです。次のようになります。

  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}
                                       };
4
nhu
   // 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;

    }
1
AhsanRazaUK