2012-01-26 9 views

risposta

11

Un set è una collezione non ordinata di elementi unici. Molte implementazioni di Set sono basate su tabelle hash (possibilmente di coppie chiave-valore). VBScript ha una classe Dictionary -

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

Non è possibile aggiungere la stessa chiave due volte, quindi le chiavi di un dizionario VBScript rappresentano/modello di un set (il set è ordinato (mediante inserimento), tuttavia). Nulla ti impedisce di mettere (altri) Dizionari nei valori:

>> 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 

In VBScript (e teoria), si può anche utilizzare oggetti come chiavi (non solo stringhe come in altre lingue):

>> 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 

Il tuo pratico chilometraggio può variare.

+0

Bella osservazione sull'uso degli oggetti come chiavi. Comunque, dovrò pensare a un uso pratico per questo. Forse la lista collegata, lo stack o la coda di un povero. – AutomatedChaos

+0

Oh, l'ho usato per implementare qualcosa come il caching dell'API - per minimizzare i riferimenti all'oggetto DataTable, memorizzando le proprietà dell'oggetto (oi riferimenti) in un dizionario. Funziona bene, può essere davvero utile. – TheBlastOne

Problemi correlati