Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共10 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[讨论]我试了一下帮助文件--集合 中的例子,不太理解。

1楼
wcs 发表于:2008/9/11 22:19:00
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编辑过]
2楼
wcs 发表于:2008/9/11 22:30:00
说实话,我不知道编程时在什么地方可能会用上集合。

确实水平太有限了。
图片点击可在新窗口打开查看
3楼
kylin 发表于:2008/9/12 7:54:00
注意以下的更改,其他不变
 For i As Integer = 0 To uu.Length - 1
 Output.Show(uu(i)) 
 
 
4楼
wcs 发表于:2008/9/12 8:32:00

按 kylin 的意思修改一下,计算结果可以理解。

但为什么像一楼那样,其计算结果为:





我不能理解。

我学习过程中,我会改一下帮助文件例子中的一些变量,观察计算结果,以理解各种属性、方法的意义。

5楼
狐狸爸爸 发表于:2008/9/12 8:36:00
输出的是Ary2的内容,结果是1和2
你改了变量名,后面引用该变量的地方也要改。
[此贴子已经被作者于2008-9-12 8:37:54编辑过]
6楼
kylin 发表于:2008/9/12 9:50:00
在老六的基础上进一步说明
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)
7楼
wcs 发表于:2008/9/12 10:07:00
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编辑过]
8楼
kylin 发表于:2008/9/12 11:16:00
别忘了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就变得没有意义了,大可以去掉。

上面和下面的变量名是否必须一致?看你的动作目标与逻辑了。
逻辑肯定是编码的基础,混乱了,到时候出现问题,很难改的。
9楼
wcs 发表于:2008/9/12 11:22:00

是有点混了。

FOR each 要求遍历所有的内容(4个),但后面的只选择了ARY2(2个要素),  for next  中又按ARY1 取值。

不过,我是故意混着的,观察规律。

图片点击可在新窗口打开查看

10楼
kylin 发表于:2008/9/12 11:31:00

原来是故意的!?

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个)

能明白?没有“混”吧。

共10 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .04688 s, 2 queries.