【问题标题】:Creating an Array of known Dimensions, Type and Length Programmatically以编程方式创建已知尺寸、类型和长度的数组
【发布时间】: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# 中以编程方式声明指定类型、维数和长度的数组,或者是采用我所拥有的并尝试调整数组大小的最佳方法,但是我知道这对于多维也很麻烦数组。

【问题讨论】:

    标签: c# .net arrays


    【解决方案1】:

    你可以使用this重载Array.CreateInstance

    Array.CreateInstance(type, sizeOfDimensions);
    

    创建指定类型和维度的多维数组 长度,从零开始的索引。指定尺寸长度 在一个 32 位整数数组中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多