我使用Dictionary和元组作为参数。
Dictionary<string, List<Tuple<string, int>>> dict_Info_A =
new Dictionary<string,List<Tuple<string,int>>>();
我无法对其进行初始化,因此会出现令人失望的错误。 请提出一些初始化方法。
提前致谢!
答案 0 :(得分:2)
这是您使用集合初始值设定项初始化字典的方法:
Dictionary<string, List<Tuple<string, int>>> dict_Info_A = new Dictionary<string, List<Tuple<string, int>>>
{
{ "a", new List<Tuple<string, int>> { new Tuple<string, int>("1", 1) } }
{ "b", new List<Tuple<string, int>> { new Tuple<string, int>("2", 2) } }
};
答案 1 :(得分:0)
我想你应该首先决定你需要什么词典
string
映射到List<Tuple<string,int>>
string
映射到Tuple<string,int>
使用这行代码
dict_Info_A.Add("A", new Tuple<string,int>("hello", 1));
您正在尝试使用Dictionary<string, Tuple<string, int>>
这样的字典应该像这样初始化:
var dict_Info_A = new Dictionary<string, Tuple<string, int>>();
以下是您在原始问题中显示的词典:
使用var关键字
初始化词典//you can also omit explicit dictionary declaration and use var instead
var dict_Info_A = new Dictionary<string, List<Tuple<string, int>>>();
初始化词典的一个元素:
dict_Info_A["0"] = new List<Tuple<string, int>>();
从字典中添加元素到列表:
dict_Info_A["0"].Add(new Tuple<string, int>("asd", 1));
答案 2 :(得分:0)
你不能使用(评论):
dict_Info_A.Add("A", new Tuple<string,int>("hello", 1));
因为字典需要列表作为值。你可以做类似的事情:
List<Tuple<string,int>> list... // todo...
// for example: new List<Tuple<string, int>> { Tuple.Create("hello", 1) };
dict_Info_A.Add("A", list);
如果每个键需要多个值,并希望追加到此列表,那么可能:
List<Tuple<string,int>> list;
string key = "A";
if(!dict_Info_A.TryGetValue(key, out list)) {
list = new List<Tuple<string,int>>();
dict_Info_A.Add(key, list);
}
list.Add(Tuple.Create("hello", 1));