Я пытаюсь объединить две хеш-таблицы, перезаписывая пары ключ-значение в первом, если тот же ключ существует во втором.
Для этого я написал эту функцию, которая сначала удаляет все пары ключ-значение впервый hastable, если такой же ключ существует во второй hashtable.
Когда я набираю это в PowerShell построчно, это работает.Но когда я запускаю всю функцию, PowerShell просит меня предоставить (что она считает) недостающие параметры для объекта foreach.
function mergehashtables($htold, $htnew)
{
$htold.getenumerator() | foreach-object
{
$key = $_.key
if ($htnew.containskey($key))
{
$htold.remove($key)
}
}
$htnew = $htold + $htnew
return $htnew
}
Вывод:
PS C:\> mergehashtables $ht $ht2
cmdlet ForEach-Object at command pipeline position 1
Supply values for the following parameters:
Process[0]:
$ ht и $ ht2хеш-таблицы содержат по две пары ключ-значение, по одной с ключом "name" в обеих хеш-таблицах.
Что я делаю не так?