一个简单的二维数组有关问题(苦恼)

一个简单的二维数组问题(苦恼)
如题

想将xmlnodelist 里边的数据放到一个二维数组中

代码如下

 Public Shared Function Gethosts() As String(,)
  Dim doc As XmlDocument = New XmlDocument()
  doc.Load("Configuration.xml")
  Dim hostNodes As XmlNodeList = doc.SelectNodes("Nodes/node")
  Dim hosts(hostNodes.Count-1, 2) As String
  For i = 1 To hostNodes.Count
  hosts(i, 0) = hostNodes.ItemOf(i).Attributes("host").InnerText
  hosts(i, 1) = hostNodes.ItemOf(i).Attributes("UserName").InnerText
  hosts(i, 2) = hostNodes.ItemOf(i).Attributes("pwd").InnerText
  Next
  Return hosts
  End Function




按说 Dim hosts(hostNodes.Count-1, 2) As String

这句 **** 里说 Dim hosts(a, b) As String

可我弄出的 二维数组维度总是多一个 比如

Dim hosts(2, 3) As String

本来 最后 hosts.lengh 应该是6 rank 应该是2
但我得到的总是 hosts.lengh 是 12 rank 是3

请高手解答!!!




------解决方案--------------------
For i = 1 To hostNodes.Count,数组下标应该是从0开始吧
For i = 0 To hostNodes.Count-1
------解决方案--------------------
Dim hosts(hostNodes.Count-1, 2) 

为什么能
 hosts(i, 2) = hostNodes.ItemOf(i).Attributes("pwd").InnerText 

这句不会出错吗?

For i = 1 To hostNodes.Count,数组下标应该是从0开始吧
For i = 0 To hostNodes.Count-1

楼上也说的对
------解决方案--------------------
vb定义数组时里面的数字是索引上限的值而不是元素数量
Dim a(2,3) As String
表示第一维索引是0-2,第二维索引是0-3,长度当然就是3*4=12,你认为长度应该为6是不对的。
至于rank,这个rank就应该是2,不知道你为什么会得到3.