Dictionary<string,int>
アイテムのリストを作成しようとしています。リストに項目を追加する方法と、リストをトラバースしながら値を取得する方法がわかりません。次のようにC#で使用したいと思います。
public List<Dictionary<string,int>> MyList= new List<Dictionary<string,int>>();
5年間で大きく変化しました...次のことが可能になりました。
ListDictionary list = new ListDictionary();
list.Add("Hello", "Test1");
list.Add("Hello", "Test2");
list.Add("Hello", "Test3");
楽しい!
これはあなたが探しているものだと思いますか?
{
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));
}
私はあなたがあなたの新しい価値を追加しなければならない独裁者で知っている必要があると思います。リストが問題です。内部の辞書を特定できません。
これに対する私の解決策は、辞書コレクションクラスです。次のようになります。
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}
};
// 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;
}