列出<string>到object []

cog*_*el0 4 c#

我有一个返回a的方法,List<string>我试图将其传递给a的AddRange(Object[])方法ComboBox.

我怎样才能将我转换List<string>Object[]

我想我可以做一个,foreach但我宁愿使用AddRange(Object[])它,因为它更快(并产生更少的代码).

编辑

以下工作正常:

var list = new List<string>();
object[] array = list.ToArray<object>();
comboBox.AddRange(array);
Run Code Online (Sandbox Code Playgroud)

但是,另一方面,我想要执行上述操作而不是:

var list = new list<string>();
comboBox.AddRange(list.ToArray<object>());
Run Code Online (Sandbox Code Playgroud)

Mar*_*zek 12

你可以使用ToArray泛型方法:

var list = new List<string>();
object[] array = list.ToArray<object>();
Run Code Online (Sandbox Code Playgroud)

你甚至不需要Cast<object>,因为在泛型类型参数上ToArray采用了IEnumerable<T>协变.

  • 数组也是协变的,所以你甚至不需要做`list.ToArray <object>()`,你只需要`list.ToArray()`. (2认同)
  • @MagnusGrindalBakken:嗯,这取决于OP是否可能希望以后在同一个数组中存储非字符串. (2认同)
  • @MagnusGrindalBakken只是做`list.ToArray()`产生一个警告说'从字符串[]到对象[]的共变量数组转换会导致写操作的运行时异常. (2认同)