我对这个天真的问题感到抱歉。我有以下内容:
public Array Values
{
get;
set;
}
public List<object> CategoriesToList()
{
List<object> vals = new List<object>();
vals.AddRange(this.Values);
return vals;
}
但这不起作用,因为我无法输入数组。有没有办法轻松修复上面的代码,或者,通常,将System.Collections.Array转换为System.Collections.Generic.List?
答案 0 :(得分:5)
确保您是using System.Linq;
,然后将您的行更改为:
vals.AddRange(this.Values.Cast<object>());
编辑:您也可以迭代数组并单独添加每个项目。
再次编辑:另一种选择,只需将数组转换为object[]
,然后使用ToList()
函数或将其传递给List<object>
构造函数:
((object[])this.Values).ToList();
或
new List<object>((object[])this.Values)
答案 1 :(得分:2)
您可以将您的财产声明更改为此吗? :
public object[] Values { get; set; }
答案 2 :(得分:0)
使用System.Linq; ...
public object[] Values
{
get;
set;
}
public List<object> CategoriesToList()
{
List<object> vals = new List<object>();
vals.AddRange(Values.ToList());
return vals;
}
答案 3 :(得分:0)
如果你不想使用linq,你可以简单地演员:
vals.AddRange((IEnumerable<object>) this.Values);