带有Split()的VBScript中的动态数组.有没有更好的办法?

Car*_*nez 3 arrays vbscript dynamic-arrays

我在工作中编写的很多脚本都依赖于动态大小的数组的创建.VBScript中的数组使得这是一项非常艰巨的任务,因为Redim每次想要调整它们时都需要数组.为了解决这个问题,我开始使用逗号分隔的字符串并使用它Split(...)来创建一维数组.虽然这对我很有用,但我想知道VBScript是否有更有效的方法来处理它.所以我问StackOverflow; 在那儿?

免责声明:我完全清楚VBScript是一种非常不合标准的脚本语言,但Python需要额外的软件,这对于服务器自动化来说有点麻烦,而PowerShell还不是核心组件.不过,我正在学习它们两个!

小智 6

我经常使用的解决方案是每次向其添加新项目时调整数组的大小.这样,结束数组将永远不会有任何未使用的条目.

ReDim aArray(-1)

For i = 1 To 10
    ReDim Preserve aArray(UBound(aArray) + 1)
    aArray(UBound(aArray)) = i
Next

MsgBox Join(aArray, "," & vbNewLine)
Run Code Online (Sandbox Code Playgroud)

Carlos提出的其他解决方案是使用Dictionary对象来完成它,这可能是更清晰的解决方案:

Set dic = CreateObject("Scripting.Dictionary")

dic.Add "Item1", ""
dic.Add "Item2", ""
dic.Add "Item3", ""

msgbox Join(dic.Keys, "," & vbNewLine)
Run Code Online (Sandbox Code Playgroud)

谢谢,Maciej