数组到列表 - 无法使AddRange(IEnumerable)工作

Der*_*unk 3 c# arrays list .net-3.5

我对这个天真的问题感到抱歉.我有以下内容:

public Array Values
{
  get;
  set;
}

public List<object> CategoriesToList()
{
  List<object> vals = new List<object>();
  vals.AddRange(this.Values);

    return vals;
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为我无法输入数组.有没有办法轻松修复上面的代码,或者,通常,将System.Collections.Array转换为System.Collections.Generic.List?

Jos*_*gle 5

确保你using System.Linq;然后将你的行改为:

vals.AddRange(this.Values.Cast<object>());

编辑:您还可以迭代数组并单独添加每个项目.

再次编辑:另一个选项,简单地将您的数组转换为object[]使用该ToList()函数或将其传递给List<object>构造函数:

((object[])this.Values).ToList();

要么

new List<object>((object[])this.Values)