Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何生成多维锯齿数组?_Vb.net_Arrays - Fatal编程技术网

Vb.net 如何生成多维锯齿数组?

Vb.net 如何生成多维锯齿数组?,vb.net,arrays,Vb.net,Arrays,我正在尝试制作一个锯齿状阵列 3列 分别为5、4、4行 每个都有两行 具有不同行数的,例如6,9,5,6,4 我有第一部分的设置,但我不知道如何进入锯齿阵列的另一个层次 Dim potentialStructure()() As Short = {New Short() {0, 1, 2, 3, 4}, New Short() {0, 1, 2, 3}, New Short() {0, 1, 2, 3}} 我如何访问一个元素,比如说,最低级别的元素?谢谢 我刚刚发现了你的问题,所以你现

我正在尝试制作一个锯齿状阵列

3列 分别为5、4、4行 每个都有两行 具有不同行数的,例如6,9,5,6,4 我有第一部分的设置,但我不知道如何进入锯齿阵列的另一个层次

    Dim potentialStructure()() As Short = {New Short() {0, 1, 2, 3, 4}, New Short() {0, 1, 2, 3}, New Short() {0, 1, 2, 3}}

我如何访问一个元素,比如说,最低级别的元素?谢谢

我刚刚发现了你的问题,所以你现在可能已经解决了。如果不是,下面我正在玩的东西的摘录可能会有所帮助。这里我有一个规则的2D数组,里面有一个锯齿状的2D数组。我相信您可以去掉您不需要的位,并理解与您的需求相关的位

我有一个包含锯齿状数组的结构:

Structure Sabc

  Dim def()() As Long
  Dim ghi As String

End Structure
我有一个由这些结构组成的非锯齿二维阵列:

Dim abc(,) As Sabc
我可以在课程开始时计算abc所需的规模:

ReDim abc(sizeD1abc, sizeD2abc)
我可以轻松访问abc元素中的简单变量:

With abc(crntD1abc, crntD2abc)
  .ghi = "Example"
End With
锯齿状数组的第一个维度的上界始终为3。我是这样设定的:

With abc(crntD1abc, crntD2abc)
  .def = New Long(3)() {}
End With
我避免在必要时更频繁地使用ReDim,因为它是一个需要大量资源的命令。在这里,我初始化了元素的数量并将其步进10步,但是我选择的值取决于我期望的数组有多大以及实际大小可能会有多大的变化

With abc(crntD1abc, crntD2abc)
  .def(crntD1def) = New Long(9) {}
End With
crntD2def = -1
如果在存储值之前需要,以下内容会添加更多元素:

With abc(crntD1abc, crntD2abc)
  crntD2def +=1
  If crntD2def > UBound(.def(crntD1def)) Then
    ReDim Preserve .def(crntD1def)(UBound(.def(crntD1def)) + 10)
  End If
  .def(crntD1def)(crntD2def) = expression
End With
完成后,我将丢弃多余的元素:

With abc(crntD1abc, crntD2abc)
  If crntD2def < UBound(.def(crntD1def)) Then
    ReDim Preserve .def(crntD1def)(crntD2def - 1)
  End If
End With

可能重复,这对谷歌来说应该很容易:锯齿状数组是不一样的,谢谢。不用担心,同时,直到有人回答这篇文章:谢谢,仍然在寻找一个更具体的例子。