Alex Rivera | Logout

Building a multidimensional array in vb.net

Asked 2010-11-23T10:58:47.490
10

I'm trying to build up a multidimensional array which will hold two bits of info for each record in a database e.g. id, description.

This is what I am currently doing.

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

The problem I have here is that it doesn't like the i in mArray(i,0). Anyone have any ideas about this? This is the error that is given Object reference not set to an instance of an object.

Thanks for any and all help.

Nalum

Edit
Report

1 Answer

14

Why not rather make use of List Class and Dictionary Class

You can rather then create a List of Dictionaries, with the key and value both strings. The key can then represent your key (id and description in your example, and the value can be what ever was stored).

Something like

Dim values As New List(Of Dictionary(Of String, String))()

and then in the while loop something like

values.Add(New Dictionary(Of String, String)() From { _
    {"id", cmdReader.Item("id")} _
})
values.Add(New Dictionary(Of String, String)() From { _
    {"description", cmdReader.Item("description")} _
})

You could then use foreach

For Each value As Dictionary(Of String, String) In values
    Dim id As String = value("id")
    Dim description As String = value("description")
Next

Or a for

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
answered 2010-11-23T11:01:49.610

Your Answer