我有一个 powershell 脚本,我在其中执行以下操作
$somePSObjectHashtables = New-Object Hashtable[] $somePSObject.Length;
$somePSObjects = Import-CSV $csvPath
0..($somePSObject.Length - 1) | ForEach-Object {
$i = $_;
$somePSObjectHashtables[$i] = @{};
$somePSObject[$_].PSObject.Properties | ForEach-Object {
$somePSObjectHashtables[$i][$_.Name] = $_.Value;
}
}
我需要这样做,因为我想在 CSV 中制作几个不同的数据副本以执行几个不同的操作。从某种意义上说,我正在对PSObject的结果数组执行“INNER JOIN” 。$somePSObjectHashtables
我可以轻松地使用ForEach-Object迭代并在数组的每个成员上调用Hashtable.Clone() 。然后我可以New-Object PSObject -Property $someHashTable[$i]
用来获取 PSObject 的深层副本。
我的问题是,是否有一些更简单的方法来制作深层副本,而无需中间哈希表?