1

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[]); 
}
4

2 に答える 2

6

これはトリックを行います:

type.MakeArrayType()

例えば:

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

// aArrayType.FullName = "System.Int32[]"
于 2013-04-25T10:11:51.090 に答える
0

アップデート

私はより良い方法があることを知っていました:)

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

元の答え:

これは機能しますが、ハックが少ないことを望んでいます

Type GetArrayType(Type t){
    return Type.GetType(t + "[]");
}
于 2013-04-25T10:02:09.950 に答える