Я пытаюсь объединить две хэш-таблицы, перезаписывая пары ключ-значение в первой, если тот же ключ существует во второй.
Для этого я написал функцию, которая сначала удаляет все пары ключ-значение в первой хэш-таблице, если тот же ключ существует во второй хэш-таблице.
Когда я ввожу эту функцию в PowerShell строка за строкой, она работает. Но когда я запускаю всю функцию, PowerShell просит меня предоставить (как он считает) недостающие параметры для foreach-object.
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" в обеих хэш-таблицах.
Что я делаю не так?