代码之家  ›  专栏  ›  技术社区  ›  Carlos Nunez

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

  •  3
  • Carlos Nunez  · 技术社区  · 14 年前

    Redim 每次需要调整数组大小时,都要调整数组的大小。为了解决这个问题,我已经开始制作逗号分隔的字符串并使用 Split(...)

    免责声明 :我完全知道VBScript是一种相当不标准的脚本语言,但是Python需要额外的软件,这对于服务器自动化来说有点麻烦,而且PowerShell还不是一个核心组件。不过,我两个都在学!

    2 回复  |  直到 14 年前
        1
  •  6
  •   Maciej Zaleski    14 年前

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

    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)
    

    谢谢,

        2
  •  1
  •   aphoria    14 年前

    来一杯怎么样 Dictionary 反对?