在PowerShell中深层复制字典(哈希表)

Waf*_*fle 9 powershell

Clone()只有一个浅层副本,似乎没有直接的方法在C#中做这个没有一些样板代码包装序列化(如何在.NET中执行对象的深层复制(特别是C#)?).有没有一种简单的方法在Powershell中执行此操作而不引用外部库?

Cos*_*Key 13

当你启动shell时,你需要的所有库都存在,所以它只是根据你的链接实现深层拷贝.

function Clone-Object {
    param($DeepCopyObject)
    $memStream = new-object IO.MemoryStream
    $formatter = new-object Runtime.Serialization.Formatters.Binary.BinaryFormatter
    $formatter.Serialize($memStream,$DeepCopyObject)
    $memStream.Position=0
    $formatter.Deserialize($memStream)
}
Run Code Online (Sandbox Code Playgroud)

  • 为了完整起见,我会提到"Clone"不是[Approved Verb](https://msdn.microsoft.com/en-us/library/ms714428(v = vs.85).aspx).应该使用动词"复制". (4认同)