2

简单的例子:

Dim d, a(0)
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens"
d.Add "b", "Belgrade"
d.Add "c", "Cairo"
Set a(0) = d

WScript.Echo(TypeName(a))

输出:

Variant()

我看不到如何访问此对象的任何方法,它计数为 3,但它似乎是空的

令我惊讶的是,谷歌没有为这个问题列出任何有用的结果——如何在数组中分配字典?

我发现最近的是这个未回答的链接

我的问题是我有一个创建临时字典的循环,我计划用字典对象输入简单的一维数组,但没有成功

我还发现了类似此链接的内容,其中分别为字典键和字典项(值)创建了两个数组,这对我的情况来说太复杂了

那么这对 VBScript 有可能吗?

4

2 回答 2

3

我可能误解了你的问题,但你可以像这样访问字典:

WScript.Echo(a(0).Item("b"))

编辑

这段代码:

Dim d, a(0)
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens"
d.Add "b", "Belgrade"
d.Add "c", "Cairo"
Set a(0) = d
WScript.Echo(a(0).Item("b"))

dim x
x = d.Items

dim i
for i = lbound(x) to ubound(x)
    WScript.Echo(x(i))
next

在我的 Windows 7 机器上产生这个输出:

C:\>cscript test.vbs
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

Belgrade
Athens
Belgrade
Cairo

C:\>
于 2012-05-23T10:45:39.030 回答
0

一个例子 :

Dim d
Set d = CreateObject("Scripting.Dictionary") 
d.Add "a", "Athens" 
d.Add "b", "Belgrade" 
d.Add "c", "Cairo" 

WScript.Echo(d("a")) '=> Athens

d("a") = "Brussels"

WScript.Echo(d("a")) '=> Brussels

a = d.Keys   ' Get the keys.
b = d.Items
For i = 0 To d.Count -1 ' Iterate the array.
  wscript.echo a(i) & " " & b(i)
Next


'=>a Brussels
'=>b Belgrade
'=>c Cairo
于 2012-05-23T11:06:56.240 回答