已知元素类型,如何获取对应的数组类型?
获取指定类型的一维数组类型
如果你已经拿到元素类型(比如typeof(int)),可以通过以下两种方式得到对应的一维数组类型:
方法一:使用Type.MakeArrayType()(推荐)
这是.NET原生提供的专用方法,简洁且适配所有类型场景:
var elementType = typeof(int); var arrayType = elementType.MakeArrayType(); // 结果为typeof(int[])
无参调用MakeArrayType()默认生成一维数组,如果需要创建多维数组,可传入维度数字作为参数(比如MakeArrayType(2)会生成二维数组类型)。
方法二:通过类型全名拼接(不推荐)
可以拼接元素类型的全名与[]构造数组类型名称,再用Type.GetType()获取:
var elementType = typeof(int); var arrayTypeName = $"{elementType.FullName}[]"; var arrayType = Type.GetType(arrayTypeName);
这种方法仅适用于简单类型,遇到泛型、嵌套类型等复杂场景时,全名拼接逻辑容易出错,通用性远不如MakeArrayType()。
内容的提问来源于stack exchange,提问作者coceban.vlad
相关产品推荐
相关产品推荐

