vb net中的多维数组

时间:2015-06-24 12:07:23

标签: arrays vb.net

我想创建二维数组(4,4)。

1   5   9   13

2   6   10  14

3   7   11  15

4   8   12  16

然而,当我创建代码时,它垂直显示,只有1维。

1
2
3
4
.
.

这是我的代码

Public Class Form1

Private Sub btnGo_Click(sender As Object, e As EventArgs) Handles btnGo.Click
    Dim array(3, 3) As Integer
    Dim array2 As Integer(,)
    array2 = New Integer(3, 3) {}

    array(0, 0) = "1"
    array(1, 0) = "2"
    array(2, 0) = "3"
    array(3, 0) = "4"
    array(0, 1) = "5"
    array(1, 1) = "6"
    array(2, 1) = "7"
    array(3, 1) = "8"
    array(0, 2) = "9"
    array(1, 2) = "10"
    array(2, 2) = "11"
    array(3, 2) = "12"
    array(0, 3) = "13"
    array(1, 3) = "14"
    array(2, 3) = "15"
    array(3, 3) = "16"

    lstArray.Items.Add(array(0, 0))
    lstArray.Items.Add(array(1, 0))
    lstArray.Items.Add(array(2, 0))
    lstArray.Items.Add(array(3, 0))
    lstArray.Items.Add(array(0, 1))
    lstArray.Items.Add(array(1, 1))
    lstArray.Items.Add(array(2, 1))
    lstArray.Items.Add(array(3, 1))
    lstArray.Items.Add(array(0, 2))
    lstArray.Items.Add(array(1, 2))
    lstArray.Items.Add(array(2, 2))
    lstArray.Items.Add(array(3, 2))
    lstArray.Items.Add(array(0, 3))
    lstArray.Items.Add(array(1, 3))
    lstArray.Items.Add(array(2, 3))
    lstArray.Items.Add(array(3, 3))

End Sub
End Class

如何制作这个二维数组? 提前致谢。

1 个答案:

答案 0 :(得分:1)

您向我们提供了有关如何创建阵列的代码,但没有给出我们如何显示它的代码。我确信你的问题就在那里(在button_click事件中,或者代码将数组读回给你的地方)。

我的猜测是非共享代码有三个问题之一:

1)它只循环通过1维数组。所以,你有像

这样的地方
For i = 0 To 3
    MsgBox(array(0, i)
Next

你需要的是像

For i = 0 To 3
    For j = 0 To 3
        MsgBox(array(i, j)
    Next
Next

2)它引用了lstArray,但在某些时候混淆了lstArray的结构和数组的结构。阵列的索引范围从(0,0)到(3,3),而lstArray的范围从(0)到(15)。如果您的变量在编码的某个时刻混淆或从一个变为另一个,那么您只能从0循环到3。

3)在如何将lstArray中的单独项目连接(或以其他方式组合)为一行时,某处出现了错误。

看看您是否可以根据这些建议解决或至少缩小问题范围,然后在需要帮助时发布缺失的代码。