Collection 类
Collection 是一个有序的项集合,可以作为一个整体来引用。集合的成员不必共享相同的数据类型——任何值或对象引用都是可接受的。可以通过项在集合中从 1 开始的数字位置访问,或者在添加时指定了键的情况下,通过该键访问。
创建、填充和释放集合
集合使用 New 创建,使用 Add 填充,使用 Remove(一次移除一项)或 Clear(一次移除所有项)缩减。当引用集合的变量超出作用域或被设置为 Nothing 时,集合及其持有的所有对象引用将被释放。
vb
Sub Demo()
Dim Cars As Collection
Set Cars = New Collection
Cars.Add "Polestar 2", Key:="EV" ' Add with a key.
Cars.Add "Volvo XC40", Key:="ICE"
Cars.Add "Toyota Mirai" ' Add without a key.
Debug.Print Cars.Count ' 3
Debug.Print Cars("EV") ' "Polestar 2" — Item is the default member.
Debug.Print Cars(3) ' "Toyota Mirai" — indexes are 1-based.
Cars.Remove "ICE" ' Remove the Volvo XC40 by key.
Cars.Remove 1 ' Remove the Polestar 2 by index.
Set Cars = Nothing ' Release the collection.
End Sub遍历集合
可以使用 For Each...Next 语句遍历 Collection,该语句按插入顺序依次产出每个项,无论项是否使用键添加。如果要遍历键,请使用 Keys 获取;若要将值的快照作为数组获取(例如在迭代期间集合可能被修改时),请使用 Items。
vb
Dim Numbers As New Collection
Numbers.Add 10
Numbers.Add 20
Numbers.Add 30
Dim n As Variant
For Each n In Numbers
Debug.Print n ' Prints 10, then 20, then 30.
Next n成员
- Add -- 向集合添加一个元素
- Clear -- 移除集合中的所有元素
- Count -- 返回集合中的元素数量
- Exists -- 返回集合中是否存在具有特定键的元素
- Item -- 按索引或键返回集合中的一个元素(默认成员)
- Items -- 返回集合中所有元素的 Variant 数组
- KeyCompareMode -- 返回或设置用于键的文本比较模式
- KeyCountHint -- 返回或设置预期键控项数量的提示
- Keys -- 返回集合中所有键的 String 数组
- Remove -- 按索引或键移除集合中的一个元素