Ich habe ein Dictionary
Objekt in VBScript. Wie kann ich alle darin enthaltenen Objekte in ein neues Dictionary
kopieren, d. H. Einen Klon/ein Duplikat des Wörterbuchs erstellen?Wie klone ich ein Dictionary-Objekt?
Antwort
Erstellen Sie ein neues Dictionary
Objekt, über die Tasten im ursprünglichen Wörterbuch iterieren und fügt diese Schlüssel und die entsprechenden Werte in das neue Wörterbuch, wie folgt aus:
Function CloneDictionary(Dict)
Dim newDict
Set newDict = CreateObject("Scripting.Dictionary")
For Each key in Dict.Keys
newDict.Add key, Dict(key)
Next
newDict.CompareMode = Dict.CompareMode
Set CloneDictionary = newDict
End Function
Dies sollte in den meisten Fällen ausreichen. Wenn Ihr ursprüngliches Wörterbuch jedoch Objekte enthält, müssen Sie das tiefe Klonen implementieren, also auch diese Objekte klonen.
Werfen Sie einen Blick auf die angenommene Antwort in VBScript: How to utiliize a dictionary object returned from a function?. Könnte eine Lösung sein, wenn nur eine Referenz gesucht wird.
bearbeiten Per Ekkehard.Horner Kommentar, ich verstehe jetzt, dass dies nicht klonen, kann aber andere helfen, die nur für einen Verweis auf das ursprüngliche Objekt suchen.
Wörterbücher sind Objekte und übergeben Objekte an Subs/Functions/Methods (sogar mit ByVal), weisen Objekten Werte zu und geben Objekte von Funktionen/Methoden zurück (hoffentlich mit Set) wird * immer * mit Referenzen umgehen und niemals ein neues Objekt klonen/kopieren/erstellen. Also lösche bitte deine irreführende/falsche Antwort. –
- 1. Wie klone ich einen Unterordner eines Repository in Mercurial?
- 2. Wie klone ich eine generische Liste in Java?
- 3. TFS - Wie klone ich ein Projekt, damit ich das Original zurücksetzen kann?
- 4. Wie klone ich ein JavaScript-Objekt aus PascalCase-Eigenschaften in CamelCase-Eigenschaften (in JavaScript)?
- 5. Wie klone ich ein leeres bare-Repository mit Ansible Git-Modul?
- 6. Wie kopiere/klone ich ein Git-Repository, ohne Speicherplatz zu verschwenden?
- 7. Wie klone ich ein gesamtes GitHub-Repository (commits, issues, wiki, everything) an eine GitHub-Organisation
- 8. Informieren Sie sich über Klone, einzigartige Klone, Ansichten und Unique Visitors Github API
- 9. Android Studio: Wie schnell Klone oder Kopien von aktuellen Projekt
- 10. Wie klon ich ein GitHub Wiki?
- 11. Warum erhalte ich ein leeres Repo, wenn ich meine Keystone-App aus Heroku in das lokale Repo klone?
- 12. Wie klone ich eine Conda-Umgebung von einem Python-Release zu einem anderen?
- 13. Jenkins Klone falschen Zweig/Version von GIT/Gerrit
- 14. Wie zu Git-End-of-Line (CRLF zu LF) über alle Klone/Maschinen zu deaktivieren?
- 15. Wie führe ich ein ServiceStack-Konsolenprojekt als Windows-Dienst aus?
- 16. Wie beiße ich ein Objekt ein?
- 17. Gibt es eine temporäre Online-Code-Ablage für C#? (JS Bin, jsFiddle-Klone)?
- 18. git seit kurzem mit ... nur bemerkt Klone meiner Dateien mit ‚~‘ am Ende angehängt ... Warum geschieht dies
- 19. Wie schreibe ich ein Tag?
- 20. Wie skaliere ich ein BufferedImage
- 21. Wie erstelle ich ein PDF?
- 22. Wie kündige ich ein CardView
- 23. Wie erstelle ich ein jqGrid
- 24. Wie mache ich ein Fragment?
- 25. Wie erstelle ich ein Kartensymbol?
- 26. Wie erstelle ich ein Leinwandauswahlwerkzeug?
- 27. Wie drucke ich ein Bit?
- 28. Wie führe ich ein Rollendiff?
- 29. Wie signiere ich ein MSI?
- 30. Wie maximiere ich ein Fenster?
Ja, das ist wahr..aber gibt es eingebaute Funktionen zum Tiefklonen –