vb.net - 多维数组列表

Joe*_*Joe 5 vb.net

我已经设法制作了一些单维数组列表,但我无法弄清楚多维度的arraylist.

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

我有一个包含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...
Run Code Online (Sandbox Code Playgroud)

Han*_*son 17

如果你想使用ArrayList,只需让它的项目包含其他ArrayLists.

或者您可以使用普通数组:

Dim multiArray(2, 2) As String
multiArray(0, 0) = "item1InRow1"
multiArray(0, 1) = "item2InRow1"
multiArray(1, 0) = "item1InRow2"
multiArray(1, 1) = "item2InRow2"
Run Code Online (Sandbox Code Playgroud)

虽然我个人的偏好是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")
Run Code Online (Sandbox Code Playgroud)

编辑:如何查找行:

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
Run Code Online (Sandbox Code Playgroud)

  • 这有效,但是如何搜索项目并返回索引?说我这样做: multiList(0).Add("item1InRow1") multiList(0).Add("item2InRow1") multiList(1).Add("item1InRow2") multiList(1).Add("item2InRow2") 怎么做我搜索“item1InRow2”并返回索引#“1”以便查询数组中的其他列? (2认同)
  • @Behzad:是的,在合理范围内。有一些限制,所以如果你要存储数百万个项目,阅读这个问题可能会很有用:http://stackoverflow.com/questions/7885294/list-size-limitation-in-c-sharp (2认同)