在vb.net中构建一个多维数组

Nal*_*lum 10 vb.net while-loop multidimensional-array

我正在尝试构建一个多维数组,它将为数据库中的每个记录保存两位信息,例如id,description.

这就是我目前正在做的事情.

Dim mArray(,) As String
Dim i As Integer = 0
While cmdReader.Read()
    mArray(i,0) = cmdReader.Item("id")
    mArray(i,1) = cmdReader.Item("description")
    i = i + 1
End While
Run Code Online (Sandbox Code Playgroud)

我在这里遇到的问题是它不喜欢imArray(i,0).有人对此有什么想法吗?这是给出的错误Object reference not set to an instance of an object.

感谢您的帮助.

Nalum

Adr*_*der 14

为什么不使用List ClassDictionary Class

您可以创建一个词典列表,其中键和值都是字符串.然后,密钥可以表示您的密钥(示例中的ID和描述,值可以是存储的值).

就像是

Dim values As New List(Of Dictionary(Of String, String))()
Run Code Online (Sandbox Code Playgroud)

然后在while循环中

values.Add(New Dictionary(Of String, String)() From { _
    {"id", cmdReader.Item("id")} _
})
values.Add(New Dictionary(Of String, String)() From { _
    {"description", cmdReader.Item("description")} _
})
Run Code Online (Sandbox Code Playgroud)

然后你可以使用foreach

For Each value As Dictionary(Of String, String) In values
    Dim id As String = value("id")
    Dim description As String = value("description")
Next
Run Code Online (Sandbox Code Playgroud)

或者一个

For i As Integer = 0 To values.Count - 1
    Dim value As Dictionary(Of String, String) = values(i)
    Dim id As String = value("id")
    Dim description As String = value("description")
Next
Run Code Online (Sandbox Code Playgroud)


小智 5

试试这个

Dim mArray(1,1) As String
Dim i As Integer = 0
While cmdReader.Read()
    mArray(i,0) = cmdReader.Item("id")
    mArray(i,1) = cmdReader.Item("description")
    i = i + 1
    ReDim Preserve mArray(i,1)
End While
Run Code Online (Sandbox Code Playgroud)