在VB.NET中更改数组值
我使用一个2D数组将数据存储在网格中,所有数据都是1和0。默认情况下,数组为全零。当我尝试使用在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)
变量(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