将C#Type转换为类型数组的类型

Rog*_*win 2 c# arrays types

我需要Type变量中给出的n个元素的数组类型.我正在解决这个问题:

Type foo;
int n;

Type newType=(Array.CreateInstance(foo,n)).GetType();
Run Code Online (Sandbox Code Playgroud)

这有效,但它确实意味着我实际上创建一个未使用的数组只是为了得到它的类型.我相信一定有更好的方法!

Ren*_*ogt 5

你可以使用Type.MakeArrayType():

Type foo = typeof(Foo);
Type arrayType = foo.MakeArrayType();
Run Code Online (Sandbox Code Playgroud)

这将返回Type一维数组Foo.所述length阵列的不相关的类型.

对于多维数组,您可以使用此重载

Type foo = typeof(Foo);
int dimensions = 5;
Type arrayType = foo.MakeArrayType(dimensions);
Run Code Online (Sandbox Code Playgroud)