Search code examples
powershellpowershell-3.0

Remove Duplicate entry from a variable


I have a mail variable with content like this

if ($user -eq 'abc') {$mail += '[email protected];'}
elseif ($user -eq 'efg') {$mail += '[email protected];'}
elseif ($user -eq 'hij') {$mail += '[email protected];'}
elseif ($user -eq 'klm') {$mail += '[email protected];'}

Now the $mail variable will have content like this [email protected];[email protected];[email protected];[email protected];[email protected]

How do i remove the duplicate mail from $mail variable. tried the below but no luck.

$mail = $mail | select -unique
$mail | sort | Get-Unique

Solution

  • Split + Select-Object -Unique do the job

    ("[email protected];[email protected];[email protected];[email protected];[email protected]".Split(';') |Select-Object -Unique) -join ";"
    

    you could use directly linq:

    $arr = "[email protected];[email protected];[email protected];[email protected];[email protected]".Split(";")
    [Linq.Enumerable]::Distinct($arr) -join ";"