我在VBScript中有一個Dictionary
對象。如何將其中包含的所有對象複製到新的Dictionary
,即創建字典的克隆/副本?如何克隆Dictionary對象?
5
A
回答
3
創建一個新的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
這應該足以在大多數情況下。但是,如果您的原始字典包含對象,則必須實施深度克隆,也就是克隆這些對象。
-1
看看VBScript: How to utiliize a dictionary object returned from a function?中接受的答案。可能是一個解決方案,如果參考是所有正在尋找。每Ekkehard.Horner的評論
編輯作爲,我現在明白了,這是不克隆,但是可以幫助別人誰只是在尋找原始對象的引用。
+1
詞典是對象和傳遞對象到子/函數/方法(即使與ByVal),分配對象的值,並從函數/方法返回對象(希望使用Set)將*總是*處理引用,並且永遠不克隆/複製/創建一個新對象。所以請刪除你的誤導/錯誤的答案。 – 2012-11-04 14:52:29
相關問題
- 1. 如何克隆js對象?
- 2. 如何克隆HttpServletResponse對象
- 3. 克隆對象
- 4. 克隆Java對象
- 5. PHP - 對象克隆
- 6. 克隆dom.Document對象
- 7. 深克隆對象
- 8. 克隆對象也克隆新數據,如何防止?
- 9. 如何克隆GroupOfNames Active Directory對象?
- 10. 如何在NHibernate中克隆對象?
- 11. 如何克隆RDD對象[Pyspark]
- 12. 如何正確克隆對象類?
- 13. 如何克隆Scala中的對象?
- 14. 如何克隆Silverlight中的Binding對象?
- 15. 如何克隆as3中的對象
- 16. 如何克隆android中的對象?
- 17. 如何克隆C#中的DateTime對象?
- 18. 如何在角度上克隆對象?
- 19. 如何克隆一個Parcel對象
- 20. 如何正確克隆對象在WinJS
- 21. 如何克隆Python生成器對象?
- 22. 如果對象克隆發生變化,則重新克隆對象
- 23. Rails克隆對象問題
- 24. 在VBA中克隆對象?
- 25. 深克隆在Java對象
- 26. 複製/克隆Javascript對象
- 27. c中的克隆對象#
- 28. 克隆對象到$這
- 29. JQuery進程克隆對象
- 30. 在Java中克隆對象
是的,這是真的..但有沒有內置的功能來執行深層克隆 – 2010-06-12 01:06:18