L oop через одну коллекцию и сохраните значения в га sh. Затем l oop через другую коллекцию и вытащите значение обратно из ha sh. Что-то вроде:
$hash = @{}
$userEmails | %{ $hash[$_.AccountEmail] = $_.EmailAddress }
$users | %{ $_.Email = $hash[$_.Username] }
Если у вас есть другие свойства, вы можете просто сохранить исходный объект:
$hash = @{}
$userEmails | %{ $hash[$_.AccountEmail] = $_ }
$users | %{
$item = $hash[$_.Username]
$_.Email = $item.EmailAddress
$_.Other = $item.SomethingElse
}
Или с циклами вместо ForEach-Object
включая:
$hash = @{}
foreach($e in $userEmails) {
$hash[$e.AccountEmail] = $e
}
foreach($u in $users) {
$item = $hash[$u.UserName]
if ($item -ne $null) {
$u.Email = $item.EmailAddress
}
}