2012-01-26 30 views

回答

11

一个Set是一个独特元素的无序集合。许多Set实现都基于哈希表(可能是键值对)。 VBScript中有一个字典类 -

Dim dicParent : Set dicParent = CreateObject("Scripting.Dictionary") 

您不能添加相同的键两次,所以一个VBScript词典的按键,分别代表/模型集(但设置是有序的(通过插入),)。没有什么能够阻止你把(其他)字典入值:

>> Dim dicParent : Set dicParent = CreateObject("Scripting.Dictionary") 
>> dicParent.Add "Fst", CreateObject("Scripting.Dictionary") 
>> dicParent("Fst").Add "Snd", "child of parent" 
>> WScript.Echo dicParent("Fst")("Snd") 
>> 
child of parent 

在VBScript(和理论),你甚至可以用对象作为键(不只是字符串作为其他语言):

>> Dim dicParent : Set dicParent = CreateObject("Scripting.Dictionary") 
>> Dim dicChild : Set dicChild = CreateObject("Scripting.Dictionary") 
>> dicParent(dicChild) = "child of parent" 
>> WScript.Echo dicParent(dicChild) 
>> 
child of parent 

您的实际里程可能会有所不同。

+0

关于使用对象作为键的好评。 Allthough,我不得不考虑一个实际的用途。也许一个穷人的链表,堆栈或队列。 – AutomatedChaos

+0

哦,我用它来实现类似API缓存的东西 - 最大限度地减少对DataTable对象的引用,将对象属性(或引用)存储在字典中。工作正常,可以确实有用。 – TheBlastOne