Array Dimensions in Visual Basic

维度是数组元素规范的可改变方向。 包含某个月份中每日销售总额的数组有一个维度(该月中的日)。 包含某个月份中各部门的每日销售总额的数组有两个维度(部门编号和该月中的日)。 数组的维数称为该数组的秩。

注意

可以使用 Rank 属性来确定数组的维数。

使用维度

可以通过为数组的每个维度提供索引或下标来指定该数组的元素。 元素在每个维度上是连续的,其索引为从 0 到该维度的最高索引。

下图演示了具有不同秩的数组的概念结构。 图中的每个元素显示了用于访问该元素的索引值。 例如,可以通过指定索引 (1, 0),来访问二维数组第二行的第一个元素。

Diagram that shows a one-dimensional array.

Diagram that shows a two-dimensional array.

Diagram that shows a three-dimensional array.

一维

许多数组只有一个维度,例如每个年龄的人数。 若要指定某个元素,只需指定该元素包含了其计数的年龄即可。 因此,此类数组只使用一个索引。 以下示例声明一个变量用于包含 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 个维度,但超过三个维度的情况极少见。

注意

将维度添加到数组时,该数组所需的总存储空间会显著增加,因此请慎用多维数组。

使用不同的维度

假设你要跟踪当月中每日的销售额。 可以声明一个包含 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 函数测试维度的下限。

请参阅