0

好的,所以我习惯了 PHP,我可以在其中声明一个多级数组,例如$something[0][1] = "test";. 我需要能够完成同样的事情,但我使用的是 VB.NET。我该怎么做?

很抱歉,如果这不是多维数组,我可能对它的名称有误,但这就是我想要做的。

谢谢!

4

2 回答 2

1

VB.Net中的多维数组...

Dim twoDimensionalArray(10, 10) As String
twoDimensionalArray(0, 1) = "test"

但是,我很少使用数组。更优雅的解决方案通常可以使用ListsDictionaries或两者的组合来实现。

更新

是数组的(10, 10)上限(大小实际上是 11,0 到 10)。如果您不指定边界,则必须Redim Preserve在要添加到数组时才指定该数组。这是列表的一件好事,您不必指定初始大小,您可以自由地添加到它们中。

这是列表列表的快速示例。

Dim listOfLists As New List(Of List(Of String))
listOfLists.Add(New List(Of String)(New String() {"a", "b", "c"}))
listOfLists.Add(New List(Of String)(New String() {"d", "e", "f"}))
listOfLists.Add(New List(Of String)(New String() {"g", "h", "i"}))
'listOfLists(0)(0) = "a"
'listOfLists(0)(1) = "b"
'listOfLists(2)(1) = "h"
于 2012-06-21T06:25:08.200 回答
0

只是一个简单的样本,动态调整数组大小

Dim arr(0)() As String            '** array declaration 
For i As Integer = 0 To 100       '** Outer loop (for the 1st dimension)
   For j As Integer = 0 To 1      '** inner loop (for the 2nd dimension)
      ReDim Preserve arr(i)       '** Resize the first dimension array preserving the stored values
      ReDim Preserve arr(i)(j)    '** Resize the 2nd dimension array preserving the stored values
      arr(i)(j) = String.Format("I={0},J={1}", i, j) '** Store a value 
   Next                           
Next

在 .NET 中,数组通常是静态的,不会自动调整大小。(例如在 Javascript 等中)因此,每次要添加新项目时都需要手动调整数组的大小,或者在开始时指定大小。

于 2012-06-21T08:51:14.647 回答