Powershell - 5 méthodes pour supprimer les doublons

Pour me soutenir, vous pouvez vous abonner à la chaîne, partager et liker les vidéos, désactiver votre bloqueur de pub ou encore faire un don. Merci!

Bonjour,

Vous cherchez comment supprimer les doublons en PowerShell ?

Voici 5 techniques offrant cette possibilité avec sensibilité ou non à la casse

# Supprimer les doublons avec sensibilité à la casse avec Select-Object
$array = 'C', 'A', 'B', 'C', 'c', 'C'
$array | Select-Object -Unique
# Supprimer les doublons avec sensibilité à la casse avec Sort-Object
$array = 'C', 'A', 'B', 'C', 'c', 'C'
$array | Sort-Object -Unique -CaseSensitive
# Supprimer les doublons avec sensibilité à la casse (Get-Unique nécessite une liste triée)
$array = 'C', 'A', 'B', 'C', 'c', 'C'
$array | Sort-Object | Get-Unique
# Supprimer les doublons avec sensibilité à la casse avec .net Linq
$array = 'C', 'A', 'B', 'C', 'c', 'C'
[Linq.Enumerable]::Distinct([string[]]@($array))
# Supprimer les doublons avec sensibilité à la casse avec un HashSet
$array = 'C', 'A', 'B', 'C', 'c', 'C'
[System.Collections.Generic.HashSet[string]]@($array)
# Supprimer les doublons sans sensibilité à la casse avec Sort-Object
$array = 'C', 'A', 'B', 'C', 'c', 'C'
$array | Sort-Object -Unique
# Supprimer les doublons sans sensibilité à la casse avec .net Linq.Enumerable
$array = 'C', 'A', 'B', 'C', 'c', 'C'
[Linq.Enumerable]::Distinct([string[]]@($array),[StringComparer]::InvariantCultureIgnoreCase)
# Supprimer les doublons sans sensibilité à la casse avec un HashSet
$array = 'C', 'A', 'B', 'C', 'c', 'C'
$hashset = [System.Collections.Generic.HashSet[string]]::new([StringComparer]::InvariantCultureIgnoreCase)
$null = $array.ForEach( { $hashset.add( $_ ) } )
$hashset

Liens en relation