使用只有一个索引的2D数组

时间:2017-10-17 19:18:42

标签: .net vb.net

For f = 0 To n

       b(f + 1) = a(f)

    Next

“b”和“a”都是整数数组。我知道如果“a”是1d数组,代码就能正常工作(没有“(f)”)。简单地用(f)填写B(f + 1)。但是,如果我使用二维数组我不能,即使我指定第一个索引。 显然,VB不允许使用只有一个索引的2d数组。 有没有办法解决这个错误?

1 个答案:

答案 0 :(得分:2)

您需要Jagged Array

锯齿状阵列和2D阵列之间的区别在于 2D阵列就像坐标系一样,每个项目都位于特定的x和y坐标处。

Array(3, 3):
        0  1  2  3
     0  A  B  C  D
     1  E  F  G  H
     2  I  J  K  L
     3  M  N  O  P

锯齿状阵列然而, 数组数组 ;这意味着主数组只有一个维度,但它能够容纳其他具有自己大小的数组。

Array(3)(x):
         0   1   2   3   4
     0  {A,  B}
     1  {C,  D,  E,  F,  G}
     2  {H,  I,  J}
     3  {K}

声明示例:

'A jagged array capable of holding 32 different 1D arrays.
Dim a As Integer()() = New Integer(32 - 1) {}

初始化子数组:

'Initializes the first sub-array to hold 8 items.
a(0) = New Integer(8 - 1) {}

访问一个项目:

Dim b As Integer = a(1)(3) 'F

访问整个阵列:

Dim b As Integer() = a(0) '{A, B}

b = a(1) '{C, D, E, F, G}