请教vb6中collection的用法

louis_zheng 2004-09-22 11:36:11
按照下面的写法为什么出来的key和item是一样的?用了coll.add item,key也不行。实在是晕。
请教如何在vb6中给collection添加item,key,如何根据key获取item
coll.Add Item:=a, key:=b
For Each key In coll
MsgBox key
MsgBox coll(1)
Next
...全文
1747 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
行云边 2004-09-28
  • 打赏
  • 举报
回复
我说的是coll.Item 的情况,
如果coll(k),这样 可以把coll看成一个数组 数组的索引 一定要 整数 哦
louis_zheng 2004-09-23
  • 打赏
  • 举报
回复
baoaya说的是coll(k),如果k是整数,k当作index,如果k是string,k当作key.但是coll(k)k是string的时候item是取不出来.rainstoremmaster的意见是k必须是数字?所以我才迷惑?如果我没理解错的话。
RUKYO 2004-09-23
  • 打赏
  • 举报
回复
baoaya(点头) 不是说得很清楚了吗?
rainstormmaster 2004-09-22
  • 打赏
  • 举报
回复
出错是正常的(coll(key)这样写的话,要求你的key必须为数字),看你的需求我推荐你用词典实现
louis_zheng 2004-09-22
  • 打赏
  • 举报
回复
我的item和key都是string类型,大家是否遇到这样的情况。
例如:
coll.add item:="good",key:="bill"
For Each key In coll
MsgBox key
MsgBox coll(key)
Next
但总是出错
行云边 2004-09-22
  • 打赏
  • 举报
回复
’添加
coll.Add Item:=a, key:="Dog"
'获取(2种方法)
'获取的时候要随时准备出错,使用 on error resume next
'1.
msgbox coll.Item(1)
'2.
msgbox coll.Item("Dog")
‘如果coll里的a是对象的话:
set obj=coll.Item("Dog")

重点:如果Item的参数是整型的话 collection就把他当作 Index看待,如果是String型的话 就把他当作 Key 看待


louis_zheng 2004-09-22
  • 打赏
  • 举报
回复
难道vb6中的coll(key)key只能是数字,既然add的时候key可以为string,奇怪为什么调用的时候不能用?msdn里面现在将.net混杂,很难查。
zichen66 2004-09-22
  • 打赏
  • 举报
回复
請注意它的引用是從1 開始的
引用時:
Object(Item)

Object("Key")
zichen66 2004-09-22
  • 打赏
  • 举报
回复
Remove 方法


把成员从 Collection 对象中删除。

语法

object.Remove index

Remove 方法的语法具有下列对象限定符和部分:

部分 描述
object 必需的。对象表达式,其值为“应用于”列表中的对象。
Index 必需的。表达式,指定集合成员的位置。如果是数值表达式,则 index 必须是介于 1 和集合 Count 属性值之间的数。如果是字符串表达式,则在将被引用的成员添加到集合时,index 必须和 key 参数一致。


说明

如果 index 的值与集合的现有成员不匹配,则会导致错误发生。
zichen66 2004-09-22
  • 打赏
  • 举报
回复
Add 方法
添加一个成员到 Collection 对象。

语法

object.Add item, key, before, after

Add 方法的语法具有下列对象限定符和命名参数:

部分 描述
object 必需的。对象表达式,其值为“应用于”列表中的对象。
item 必需的。任意类型的表达式,指定要添加到集合中的成员。
key 可选的。唯一字符串表达式,指定可以使用的键字符串,代替位置索引来访问集合中的成员。
before 可选的。表达式,指定集合中的相对位置。在集合中将添加的成员放置在 before 参数识别的成员之前。如果为一数值表达式,则 before 必须是介于 1 和集合 Count 属性值之间的值。如果为一字符串表达式,则当添加一个被引用的成员到集合时,before 必须对应于指定的 key 值。可以指定 before 位置或 after 位置,但不能同时指定这两个位置。
after 可选。表达式,指定集合中的相对位置。在集合中将添加的成员放置在 After 参数识别的成员之后。如果为一数值表达式,则 after 必须是介于 1 和集合 Count 属性值之间的值;如果为一字符串表达式,则当添加一个被引用的成员到集合时,after 必须对应于指定的 key 值。可以指定 before 位置或 after 位置,但不能同时指定这两个位置。


说明

before 或 after 参数是字符串表达式或数值表达式,均须引用集合中现有成员,否则将导致错误发生。

如果指定的 key 和集合中现有成员的 key 发生重复,则也会导致错误发生。
jam021 2004-09-22
  • 打赏
  • 举报
回复
对,推荐使用Dictionary对象
Set m_Args = WScript.CreateObject("Scripting.Dictionary")

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧