public Array ListToArray(List<Object> list)
{
//for example i need convert list to string[] (not knowing that objects is strings)
}
Run Code Online (Sandbox Code Playgroud)
我有一个对象列表.所有相同类型的对象.但对我来说,这种类型尚不清楚.类型可以是例如String或任何其他类.我需要将此List转换为继承类的数组.我能怎么做?
您可以使用Array.CreateInstance在运行时创建所需类型的数组,然后使用填充它Array.Copy,例如:
public Array ListToArray(List<Object> list)
{
// assume there is at least one element in list
Array arr = Array.CreateInstance(list[0].GetType(), list.Count);
Array.Copy(list.ToArray(), arr, list.Count);
return arr;
}
Run Code Online (Sandbox Code Playgroud)
现在ListToArray(new List<object>{1,2})将返回int[]并ListToArray(new List<object>{"1","2"})会返回一个string[](显然类型为Array).