Как мне клонировать объект Dictionary? - PullRequest
8 голосов
/ 11 июня 2010

У меня есть Dictionary объект в VBScript.Как я могу скопировать все содержащиеся в нем объекты на новый Dictionary, т.е. создать клон / дубликат словаря?

Ответы [ 2 ]

7 голосов
/ 11 июня 2010

Создайте новый Dictionary объект, итерируйте по ключам в исходном словаре и добавьте эти ключи и соответствующие значения в новый словарь, например:

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

Этого должно быть достаточно в большинстве случаев. Однако, если ваш оригинальный словарь содержит объекты, вам придется реализовать глубокое клонирование, то есть клонировать эти объекты.

0 голосов
/ 04 ноября 2012

Взгляните на принятый ответ в VBScript: Как использовать объект словаря, возвращенный функцией? . Может быть решением, если ссылка - это все, что ищется.

Редактировать Согласно комментарию Ekkehard.Horner, теперь я понимаю, что это не клонирование , но может помочь другим, кто ищет только ссылку на исходный объект.

...