【发布时间】:2018-05-17 03:28:28
【问题描述】:
我正在尝试解析一个 IDX 文件(用于存储几种不同类型的多维数据)。我已经成功解码了标头,它告诉您数据的类型(无符号字节、有符号字节、短整型、整数、浮点型或双精度型)、维数和这些维的大小。但是,有了这些信息,我想不出或找到一种方法来以编程方式声明具有上述参数的数组。
示例:
Type type = getDataType(magicBytes);
int numOfDimensions = getNumberOfDimensions(magicBytes);
int[] sizeOfDimensions = getSizeOfDimensions(numOfDimensions, inputStream, data);
//Declare an array of type with numOfDimensions dimensions and sizes of sizeOfDimensions
我尝试了什么:
- 要声明一个指定长度的一维数组并键入您
可以使用我从here 获得的
Array.CreateInstance(type, length);。也许这可以实现为递归方法? - 我也认为this 很有用,但是它不允许您设置
每个维度的长度。但是,这个
Type t = type.MakeArrayType(numOfDimensions);将创建一个具有正确维度数量和类型而不是长度的数组。
问题:
是否有人知道如何在 C# 中以编程方式声明指定类型、维数和长度的数组,或者是采用我所拥有的并尝试调整数组大小的最佳方法,但是我知道这对于多维也很麻烦数组。
【问题讨论】: