vb 集合 是否可以以集合做成员变量(求助!)

zing21cn 2007-12-16 05:20:49
vb 集合 是否可以以集合做成员变量

如果可以,请问如何遍历,直到遍历到集合成员的最终类型。请给出代码。

求助!
...全文
61 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Tiger_Zhao 2007-12-17
需求是什么?
究竟是类似用来存储专一类型(比如File对象)的集合(FileCollection)实现除了Add、Item等属性以外还要实现 For...Each 功能。
还是使用Collection时有疑问。

请具体说明。
回复
xie1217 2007-12-17
ding
回复
是的
回复
是的
回复
zing21cn 2007-12-17
我没找到结贴,一不小心给帖子加了分。
回复
zing21cn 2007-12-17
http://topic.csdn.net/u/20071217/17/8a8f0960-847b-43ca-b790-3e52d4b4b256.html
回复
zing21cn 2007-12-17
对不起我没说清楚,我原以为collection,可以自定义,却没想到自定义只能是class的集合,这不符合我的想法。
我另发一贴,希望朋友们能帮我验证。
回复
zing21cn 2007-12-17
用 typeof 对吗?
回复
zing21cn 2007-12-17
我用的是vb6 ,怎么判断 add 的是obj , 还是 Collection 呢?
回复
liangCK 2007-12-16
这分不给我..我以后不玩了.
回复
zzyong00 2007-12-16
回复
liangCK 2007-12-16
Private Sub Command1_Click()
Dim ParentCollection As New Collection '父集合
Dim ChildCollection As New Collection '子集合

Dim i As Integer, j As Integer

For i = 1 To 30
ChildCollection.Add "项" & CStr(i)
Next
ParentCollection.Add ChildCollection '父集合添加子集合

Dim tempCollection As New Collection '临时集合,用于遍历得到父集合中的子集合

For i = 1 To ParentCollection.Count
Set tempCollection = ParentCollection.Item(i)

For j = 1 To tempCollection.Count
Debug.Print tempCollection.Item(j)
Next
Next
End Sub
回复
应该先要判断是否集合 再考虑是否输出吧 递归比较容易实现
Option Explicit
Private Sub Command1_Click()
Dim ParentCollection As New Collection '父集合
Dim ChildCollection As New Collection '子集合
Dim ChildCollection2 As New Collection '孙集合
Dim i As Integer, j As Integer
For i = 1 To 30
ChildCollection2.Add "孙子" & i
Next
For i = 1 To 15
ChildCollection.Add "儿子" & i
Next
ParentCollection.Add ChildCollection '父集合添加子集合
ChildCollection.Add ChildCollection2 '子集合添加孙子集合
Call OutputCol(ParentCollection)
End Sub
Private Sub OutputCol(ParentC As Collection, Optional CLevel As Long = 0)
Dim i As Long
If CLevel = 0 Then Debug.Print "根结点"
For i = 1 To ParentC.Count
If TypeOf ParentC.Item(i) Is Collection Then
Debug.Print String(CLevel + 1, "-") & ">"
Call OutputCol(ParentC.Item(i), CLevel + 1)
Else
Debug.Print String(CLevel, " ") & ParentC.Item(i)
End If
Next
End Sub
回复
zing21cn 2007-12-16
真是太感谢了,你用VB多久了。

还把代码做成 html格式的,一目了然。太感谢了!
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7453

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告