2012-01-26 34 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