读书人

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

发布时间: 2012-09-27 11:11:17 作者: rapoo

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

想将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

这句 CSDN 里说 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.

读书人网 >VB Dotnet

热点推荐