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

时间:2010-08-10 20:16:39

标签: arrays vbscript dynamic-arrays

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

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

2 个答案:

答案 0 :(得分:6)

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

ReDim aArray(-1)

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

MsgBox Join(aArray, "," & vbNewLine)

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

Set dic = CreateObject("Scripting.Dictionary")

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

msgbox Join(dic.Keys, "," & vbNewLine)

谢谢, 马切伊

答案 1 :(得分:1)

Dictionary对象怎么样?