У меня есть сценарий 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 для выполнения нескольких различных манипуляций.В некотором смысле я выполняю «INNER JOIN» для результирующего массива PSObject .Я могу легко перебрать $somePSObjectHashtables
с помощью ForEach-Object и вызвать Hashtable.Clone () для каждого члена массива.Затем я могу использовать New-Object PSObject -Property $someHashTable[$i]
для получения глубокой копии PSObject.
Мой вопрос: есть ли какой-нибудь более простой способ сделать глубокую копию без промежуточной Hashtable?