如何在c#
中将数组分配给字典以下代码无效
and
错误:
ArrayList conf_list = new ArrayList();
var variations = new Dictionary<string, List<string>>();
conf_list.Add ("hi");
conf_list.Add ("bye");
conf_list.Add ("ss");
conf_list.Add ("fefe");
conf_list.Add ("gg");
conf_list.Add ("qwq");
conf_list.Add ("trt");
variations["available"] = conf_list;
如何一次将孔阵列推到dictionay?
注意:我不想使用这种方法
Severity Code Description Project File Line Suppression State
Error CS0029 Cannot implicitly convert type 'System.Collections.ArrayList' to 'System.Collections.Generic.List<string>' ConsoleApplication1 c:\users\administrator\documents\visual studio 2015\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs 27 Active
答案 0 :(得分:1)
使用
var variations = new Dictionary<string, ArrayList>();
或
List<string> conf_list = new List<string>();
这两种类型不能互换使用。
答案 1 :(得分:1)
您需要将ArrayList
转换为List<string>
。这可以这样做:
variations["available"] = conf_list.OfType<string>().ToList();
您输入错误的原因是conf_list
属于ArrayList
类型,无法隐式转换为List<string>
。
使用OfType<string>()
,您会获得string
的枚举,并使用ToList()
将此枚举转换为List<string>
,然后可以将其添加到词典中。
或者,您可以从一开始就将conf_list
声明为List<string>
。
List<string> conf_list = new List<string>();
conf_list.Add ("hi");
//...
答案 2 :(得分:0)
尝试这个
List<string> lstString = new List<string>();
var variations = new Dictionary<string, List<string>>();
variations.Add("available", lstString);
如果您想将ArrayList
添加到Dictionary
中,那么您需要创建Dictionary
之类的东西......
var variations = new Dictionary<string, ArrayList>();