vb.net - 多维数组列表

时间:2010-09-07 13:55:32

标签: vb.net

我设法制作了一些单维数组列表,但我无法弄清楚多维数据列表。

这是我正在尝试做的事情:

我有一个包含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...

2 个答案:

答案 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