如何在c#中将整个数组赋值给字典

时间:2016-05-23 10:23:01

标签: c# arrays dictionary

如何在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

3 个答案:

答案 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>();