3

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

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

4

2 回答 2

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)

谢谢, Maciej

于 2010-08-19T17:16:11.987 回答
1

Dictionary对象怎么样?

于 2010-08-11T15:13:14.037 回答