维度是数组元素规范的可改变方向。 一个数组保存每个月的每天的销售额总计,其维度为每月的天数。 一个数组记录了每个部门在每月的每日销售总额,该数组有两个维度(部门编号和日期)。 数组的维度数称为其 排名。
注释
可以使用该 Rank 属性来确定数组具有的维度数。
使用维度
通过为每个维度提供 索引 或 下标 来指定数组的元素。 元素在索引 0 到每个维度的最高索引之间的所有维度上都是连续的。
下图显示了具有不同排名的数组的概念结构。 图中的每个元素都显示访问它的索引值。 例如,可以通过指定索引 (1, 0)
来访问二维数组第二行的第一个元素。
一维
许多数组只有一个维度,例如每个年龄的人数。 若要指定某个元素,只需指定该元素包含了其计数的年龄即可。 因此,此类数组仅使用一个索引。 以下示例声明一个变量,用于保存 0 到 120 岁年龄计数的 一维数组 。
Dim ageCounts(120) As UInteger
两个维度
一些数组有两个维度,例如校园中每个建筑每个楼层的办公室数。 元素的规范需要建筑号和楼层,每个元素都包含该建筑和楼层组合的计数。 因此,此类数组使用两个索引。 下面的示例声明了一个变量,用于保存 二维数组,该数组记录了 0 到 40 号建筑和 0 到 5 层楼的办公室数量。
Dim officeCounts(40, 5) As Byte
二维数组也称为 矩形数组。
三维
几个数组具有三个维度,例如三维空间中的值。 此类数组使用三个索引,在本例中表示物理空间的 x、y 和 z 坐标。 以下示例声明一个变量,用于保存三维空间中各个点的空气温度数组。
Dim airTemperatures(99, 99, 24) As Single
三个以上的维度
虽然数组可以有多达 32 个维度,但很少有 3 个以上的维度。
注释
向数组添加维度时,数组所需的总存储会大大增加,因此请谨慎使用多维数组。
使用不同的维度
假设你想要跟踪本月的每一天的销售额。 可以声明一维数组,其中包含 31 个元素,一个元素用于一个月中的每一天,如以下示例所示。
Dim salesAmounts(30) As Double
现在,假设你不仅要跟踪一个月中的每一天,还要跟踪每年每个月的相同信息。 可以声明一个二维数组,其中包含 12 行(对于月份)和 31 列(对于天数),如以下示例所示。
Dim salesAmounts(11, 30) As Double
现在假设你决定让数组保存一年多的信息。 如果要跟踪 5 年的销售额,可以声明包含 5 层、12 行和 31 列的三维数组,如以下示例所示。
Dim salesAmounts(4, 11, 30) As Double
请注意,由于每个索引从 0 到其最大值不等,因此 salesAmounts
的每个维度声明为比该维度所需的长度小 1。 另请注意,数组的大小随每个新维度而增加。 上述示例中的三个大小分别为 31、372 和 1,860 个元素。
注释
可以在不使用Dim
语句或New
子句的情况下创建数组。 例如,可以调用 CreateInstance 该方法,或者另一个组件可以传递以这种方式创建的数组的代码。 此类数组可以具有 0 以外的下限。 始终可以使用 GetLowerBound 方法或 LBound
函数测试维度的下限。