Dim Lst As New List(Of String()) '定义一个字符型数组集合。
Dim Ary1(1) As String Dim Ary2(1) As String
Lst.Add(Ary1) '将数组加到集合中。
Lst.Add(Ary2)
Ary1(0) = "a"
Ary1(1) = "b"
Ary2(0) = "1"
Ary2(1) = "2" '注意循环变量是字符型数组,所以类型是String(),而不是String
For Each uu As String() In Lst
For i As Integer = 0 To Ary1.Length - 1
Output.Show(Ary2(i))
Next
Next ‘注意:我修改了一下帮助原文 for each 后面的几个变量,如“uu”、“ary1”、“ary2”
执行结果是:
1
2
1
2
这个结果表示:Ary2数组中的内容循环显示了两次,但是 “For i As Integer = 0 To Ary1.Length - 1”只定义了显示从0、1两个要素 不理解啊!
[此贴子已经被作者于2008-9-11 22:22:00编辑过]
按 kylin 的意思修改一下,计算结果可以理解。
但为什么像一楼那样,其计算结果为:
1
2
1
2
我不能理解。
我学习过程中,我会改一下帮助文件例子中的一些变量,观察计算结果,以理解各种属性、方法的意义。
输出的是Ary2的内容,结果是1和2
你改了变量名,后面引用该变量的地方也要改。
[此贴子已经被作者于2008-9-12 8:37:54编辑过]
在老六的基础上进一步说明
For Each uu As String() In Lst 这一句的目的是为了数组集合的每一个元素
For i As Integer = 0 To Ary1.Length - 1 这一句从逻辑上应当是针对上一句的uu才可以
Output.Show(Ary2(i)) 这一句的意思是要求程序显示数组Ary2的内容,当然没有办法显示Ary1的内容。实际上所要的是uu中每一个元素中的每一个值即uu(i)
For i As Integer = 0 To Ary1.Length - 1
Output.Show(Ary2(i))
Next
我是这样理解的:For i As Integer = 0 To Ary1.Length - 1 表示 i取0、1 (ary1只有两个要素),
那么Output.Show(Ary2(i)) 也只应显示两个结果,而不是4个!
不理解结果为什么是4个。
在这个语句里,上面和下面的变量名必须一致吗?(ary1和ary2、uu)
[此贴子已经被作者于2008-9-12 10:08:11编辑过]
别忘了For Each uu As String() In Lst 是在你的For i As Integer = 0 To Ary1.Length - 1 之外圈,也是包含2个数组,也是循环两次。小学算式2*2=4
如你的需要只要2个的话,For Each uu As String() In Lst 与外圈的Next就变得没有意义了,大可以去掉。
上面和下面的变量名是否必须一致?看你的动作目标与逻辑了。
逻辑肯定是编码的基础,混乱了,到时候出现问题,很难改的。
是有点混了。
FOR each 要求遍历所有的内容(4个),但后面的只选择了ARY2(2个要素), for next 中又按ARY1 取值。
不过,我是故意混着的,观察规律。
原来是故意的!?
FOR each 要循环2次
For i 也要循环2次
过程大致描述一下:
FOR each 第一次,For i 从0-1循环了2次,也就是遍历ARY2所有内容(2个)
FOR each 第而次,For i 还是从0-1循环了2次,也就是重新遍历ARY2所有内容(2个)
一共遍历2次ARY2所有内容(即4个)
能明白?没有“混”吧。