Qualcosa di simile a Set<String, Set<String>>
in Java?Esiste un dizionario di dizionari nella versione QTP di VBS?
5
A
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.
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
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