给定简单类型T,得到数组类型T []

时间:2013-04-25 10:00:58

标签: .net arrays reflection types

如何获得Array of type T T的类型?

LinqPad友好的片段如下:

void Main()
{
    Type t = typeof(string);
    Type tArray = GetArrayType(t);
    tArray.Dump(); // System.String[]
}
Type GetArrayType(Type t)
{
    ////this is cheating !!
    //return typeof(string[]); 
}

2 个答案:

答案 0 :(得分:6)

这样可以解决问题:

type.MakeArrayType()

例如:

int a = 123;
Type aType = a.GetType();
Type aArrayType = aType.MakeArrayType();

// aArrayType.FullName = "System.Int32[]"

答案 1 :(得分:0)

更新

知道a better way:)

Type GetArrayType(Type t){
    return t.MakeArrayType();
}

原始答案:

这有效,但我希望不那么讨厌

Type GetArrayType(Type t){
    return Type.GetType(t + "[]");
}