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