将Object转换为ObjectArray,但Array应具有Object的Type

时间:2014-01-25 21:55:57

标签: c# arrays reflection

我有一个将对象转换为对象数组的函数。

我知道我可以做到这一点

new [] {obj}

但是数组是Type对象[]。我希望数组是obj.GetType()返回的类型!

这是否可以以高效的方式实现?

2 个答案:

答案 0 :(得分:1)

您可以使用Array类的静态方法。

请参阅http://msdn.microsoft.com/en-us/library/zb3cfh7k.aspx

完整的例子可能是

object o = ...;// Some object you want to convert into a an array
var arrayVar = Array.CreateInstance(o.GetType(), 1);

答案 1 :(得分:1)

T[] ToObjectArray<T>(T item)
{
    return new T[] { item };
}

您可以像

一样使用它
int[] arr1 = ToObjectArray(5);
Color[] arr2 = ToObjectArray(Color.Red);