У меня есть два словаря, которые мне нужно сравнить. Логика этого заключается в том, что если ключ из второго словаря найден между значениями первого словаря, значение из первого должно быть заменено на то, что содержит значение из второго.PowerShell сравнить словари
В этом примере значение «MemberOf» в словаре FIRST должно быть заменено значением ключа в словаре SECOND. Я хотел бы изменить значение и не создавать новый словарь/список.
Решение должно иметь возможность запускать в PowerShell v2.
$base_properties = `
@{
'user' = `
('CN', 'MemberOf')
}
$expression_properties = `
@{
'MemberOf' = @{name='MemberOf';expression={$_.MemberOf -join ';'}}
}
Окончательное решение:
foreach ($prop_key in $base_properties.Keys) {
foreach ($prop_name in $base_properties[$prop_key]) {
if ($expression_properties.ContainsKey($prop_name)) {
$index = $base_properties[$prop_key].IndexOf($prop_name)
$base_properties[$prop_key][$index] = $expression_properties[$prop_name]
}
}
}
Я не знал о методе ContainsKey. Я собираюсь проверить это. –
@AdrianZ. забыли принять несколько имен свойств во внимание, обновленный ответ –
Я немного изменил ваш код, но это помогло мне, спасибо. –