我剛剛發現了你的問題,所以你現在可能已經解決了它。如果不是,我正在玩的東西中的以下摘錄可能會有所幫助。這裏我有一個規則的二維數組,裏面有一個鋸齒形的二維數組。我相信你可以去掉你不需要的位,並理解與你的需求相關的位。
我有一個結構,其包括一個交錯數組:
Structure Sabc
Dim def()() As Long
Dim ghi As String
End Structure
我有這些結構的非鋸齒2D陣列:
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
可能重複,這應該很容易谷歌:http://stackoverflow.com/questions/4255308/building-a-multidimensional-array-in-vb-net – 2012-03-26 04:55:37
鋸齒陣列是不一樣的,謝謝。 – Meowbits 2012-03-26 04:57:44
不用擔心,直到有人回答檢查這篇文章:http://msdn.microsoft.com/en-us/library/2s05feca.aspx – 2012-03-26 05:10:51