VB.NET中数组中的灵活指数

Moh*_*aei 1 vb.net arrays

我想知道如何在vB.NET中为数组中的索引设置无限索引(限制)我通常必须指定数组每个维度中的最大项目数,但是当我不知道有多少时(让我们说它是一个ID字段),会在那里,我不想浪费数据.

所以我想要而不是写作

Dim storage(0 To 1000, 0 To 3, 0 To 5) As String
Run Code Online (Sandbox Code Playgroud)

写这样的东西(其中*表示无限制),分别保持其他限制:

Dim storage(*, 0 To 3, 0 To 5) As String
Run Code Online (Sandbox Code Playgroud)

那么我可以添加这样的项目:

storage(123456,3,5) = "abcdefgh"
Run Code Online (Sandbox Code Playgroud)

Ste*_*art 6

请不要这样做:)根据需要动态地重新调整数组大小是不必要的混淆.多维数组也不必要地混淆.因此,动态地重新调整多维数组的大小是不必要的折磨.

当数组的大小是动态的时,请不要使用数组.使用a Collection,而不是List(Of T)类.而不是使用多个维度,创建一个定义列表包含的对象的自定义类,例如:

Public Class Person
    Public Property ID As String
    Public Property PhoneNumbers As New List(Of PhoneNumber) 
End Class

Public Class PhoneNumber
    Public Property Number As String
    Public Property Description As String
End Class
Run Code Online (Sandbox Code Playgroud)

然后,您可以定义动态人员列表,如下所示:

Dim people As New List(Of Person)
Run Code Online (Sandbox Code Playgroud)

您可以为一个人添加任意数量的电话号码,如下所示:

Dim person As New Person()
Dim phone As New PhoneNumber()
phone.Number = "123-123-1234"
person.PhoneNumbers.Add(phone)

Dim phone2 = New PhoneNumber()
phone2.Number = "123-123-4567"
person.PhoneNumbers.Add(phone2)
Run Code Online (Sandbox Code Playgroud)

同样,您可以添加多个人,如下所示:

Dim person2 As New Person()
' ...
people.Add(person)

Dim person2 As New Person()
' ...
people.Add(person2)
Run Code Online (Sandbox Code Playgroud)