如何使用VBScript创建集合

在 VBScript 中,可以通过以下几种方式创建集合(Collection):


1. 使用 Collection 对象(最常用)

Collection 是 VBScript 内置的集合对象,可以存储任意类型的值,并支持按索引或键(Key)访问。

示例代码

' 创建 Collection 对象
Set myCollection = CreateObject("Collection")

' 添加项目(可选键名)
myCollection.Add "苹果"          ' 不指定键名,按索引访问
myCollection.Add "香蕉", "banana" ' 指定键名 "banana"
myCollection.Add "橙子", "orange" ' 指定键名 "orange"

' 访问集合项目
WScript.Echo myCollection(1)      ' 输出: 苹果(按索引,从1开始)
WScript.Echo myCollection("banana") ' 输出: 香蕉(按键名)

' 遍历集合
For i = 1 To myCollection.Count
    WScript.Echo "项目 " & i & ": " & myCollection(i)
Next

' 遍历键名(如果使用了键名)
For Each key In Array("banana", "orange")
    WScript.Echo "键: " & key & ", 值: " & myCollection(key)
Next

' 删除项目(按索引或键名)
myCollection.Remove(1)           ' 删除第一个项目("苹果")
myCollection.Remove("banana")    ' 删除键名为 "banana" 的项目

2. 使用 Dictionary 对象(键值对集合)

DictionaryScripting.Dictionary 对象,提供类似 Collection 的功能,但更专注于键值对存储。

示例代码

' 创建 Dictionary 对象
Set myDict = CreateObject("Scripting.Dictionary")

' 添加键值对
myDict.Add "apple", "苹果"
myDict.Add "banana", "香蕉"
myDict.Add "orange", "橙子"

' 访问值
WScript.Echo myDict("apple") ' 输出: 苹果

' 检查键是否存在
If myDict.Exists("banana") Then
    WScript.Echo "香蕉存在"
End If

' 遍历 Dictionary
keys = myDict.Keys ' 获取所有键
For i = 0 To myDict.Count - 1
    WScript.Echo "键: " & keys(i) & ", 值: " & myDict(keys(i))
Next

' 删除项目
myDict.Remove("orange") ' 删除键为 "orange" 的项目

3. 使用 ArrayList(Windows Script 5.7+)

ArrayListSystem.Collections.ArrayList 对象,提供类似数组的功能,但可以动态调整大小。

示例代码

' 创建 ArrayList 对象(需要 Windows Script 5.7+)
Set myList = CreateObject("System.Collections.ArrayList")

' 添加项目
myList.Add "苹果"
myList.Add "香蕉"
myList.Add "橙子"

' 访问项目(按索引,从0开始)
WScript.Echo myList(0) ' 输出: 苹果

' 遍历 ArrayList
For i = 0 To myList.Count - 1
    WScript.Echo "项目 " & i & ": " & myList(i)
Next

' 删除项目
myList.RemoveAt(1) ' 删除索引为1的项目("香蕉")

4. 使用自定义对象集合

可以创建自定义对象并存储在集合中。

示例代码

' 定义一个简单的类
Class Person
    Public Name
    Public Age
End Class

' 创建 Collection 存储自定义对象
Set people = CreateObject("Collection")

' 创建对象并添加到集合
Set p1 = New Person
p1.Name = "张三"
p1.Age = 30
people.Add p1

Set p2 = New Person
p2.Name = "李四"
p2.Age = 25
people.Add p2

' 遍历对象集合
For Each person In people
    WScript.Echo person.Name & ", " & person.Age & "岁"
Next

总结

集合类型 创建方式 特点
Collection CreateObject("Collection") 内置,支持索引和键名
Dictionary CreateObject("Scripting.Dictionary") 专注于键值对
ArrayList CreateObject("System.Collections.ArrayList") 动态数组(需 WSH 5.7+)
自定义集合 CreateObject("Collection") + 自定义对象 存储复杂对象

推荐

  • 如果只是简单存储数据,用 CollectionDictionary
  • 如果需要键值对,用 Dictionary
  • 如果需要动态数组功能,用 ArrayList(但需较新 WSH 版本)。

希望这些示例能帮助你理解 VBScript 中的集合用法! 🚀

posted @ 2025-11-28 16:07  nxhujiee  阅读(0)  评论(0)    收藏  举报