在VB.NET中更改数组值

在VB.NET中更改数组值,vb.net,visual-studio-2010,vb.net-2010,Vb.net,Visual Studio 2010,Vb.net 2010,我使用一个2D数组将数据存储在网格中,所有数据都是1和0。默认情况下,数组为全零。当我尝试使用变量(y)(x)=1修改数组中的值时,其中x和y是范围内的整数,它会将整个列中的值更改为1,而不仅仅是单个单元格中的值 例如: Public cells(19)() As Integer 'Code to populate it with zeros goes here Public Sub modifyCells(ByVal x As Integer, ByVal y As Integer)

我使用一个2D数组将数据存储在网格中,所有数据都是1和0。默认情况下,数组为全零。当我尝试使用
变量(y)(x)=1修改数组中的值时,其中x和y是范围内的整数,它会将整个列中的值更改为1,而不仅仅是单个单元格中的值

例如:

Public cells(19)() As Integer

'Code to  populate it with zeros goes here

Public Sub modifyCells(ByVal x As Integer, ByVal y As Integer)
    cells(x)(y) = 1
End Sub
无论何时调用
modifyCells(0,0)
我都会得到每个子数组的值,如下所示:

1,0,0,0,0,0,0,0,0,0,0

然而,我希望这只发生在第一个子数组上(即单元格(0)(0)=1处的值,并且只发生在该值上)

我该怎么办?提前谢谢

(如果有任何区别,用于填充数组的代码如下所示)


您的问题是,您正在使用完全相同的数组填充每一行。您需要将局部变量定义移动到循环中:

Public Sub clear()
    For y = 0 To 19
        Dim A1() As Integer = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
        cells(y) = A1
    Next
End Sub

您基本上是在
单元格中的每个位置添加对相同的数组的引用

请尝试以下方法:

Public Sub clear()
    For y = 0 To 19         
        cells(y) = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}     
    Next 
End Sub 

我认为这是一个包含一维数组的一维数组,而不是二维数组。一个二维数组将是Dim x(19,10)作为整数。正如其他人所说,
Public Sub clear()
    For y = 0 To 19         
        cells(y) = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}     
    Next 
End Sub