我设法制作了一些单维数组列表,但我无法弄清楚多维数据列表。
这是我正在尝试做的事情:
我有一个包含5列的数据库(mdb),我希望每一行都在数组列表中。
在PHP中,我通常做的是:
$ array [$ field1] = array($ field2,$ field3,$ field4,$ field5);
我是如何在vb.net中做同样的事情所以我需要获取一个特定于我可以调用的row1的项目?
对于单个维度,我可以执行以下操作,但我无法弄清楚如何向单个数组行添加更多字段:
Dim tmpArrayX As New ArrayList
tmpArrayX.Add(field(0))
tmpArrayX.Add(field(1))
etc...
答案 0 :(得分:16)
如果您想使用ArrayList
,只需将其商品包含其他ArrayList
。
或者你可以使用普通数组:
Dim multiArray(2, 2) As String
multiArray(0, 0) = "item1InRow1"
multiArray(0, 1) = "item2InRow1"
multiArray(1, 0) = "item1InRow2"
multiArray(1, 1) = "item2InRow2"
虽然我个人倾向于使用List
作为:
Dim multiList As New List(Of List(Of String))
multiList.Add(New List(Of String))
multiList.Add(New List(Of String))
multiList(0).Add("item1InRow1")
multiList(0).Add("item2InRow1")
multiList(1).Add("item1InRow2")
multiList(1).Add("item2InRow2")
编辑:如何查找行:
Dim listIWant As List(Of String) = Nothing
For Each l As List(Of String) In multiList
If l.Contains("item1InRow2") Then
listIWant = l
Exit For
End If
Next
答案 1 :(得分:2)
'这允许动态添加行....经过测试,它可以正常工作!
Dim multiList As New List(Of List(Of String))
Dim ListRow As Integer = 0
For each record in some_source
dim Country as string = record.country 'from some source
dim Date as Date = record.Date 'from some source
dim Venue as string = record.Venue 'from some source
dim Attendance as string = record.Attendance 'from some source
multiList.Add(New List(Of String))
multiList(ListRow).Add(Country)
multiList(ListRow).Add(Date)
multiList(ListRow).Add(Venue)
multiList(ListRow).Add(Rating)
multiList(ListRow).Add(Attendance)
ListRow = ListRow + 1
next