У меня есть массив:

Name
----
hi
hello
hello

Я бы хотел избавиться от всех дубликатов, но сохранил хотя бы один оригинал. поэтому результат должен выглядеть как

Name
----
hi
hello
1
Justin Beagley 27 Ноя 2016 в 11:08

3 ответа

Лучший ответ

Select-Object - Уникальный

Указывает, что если подмножество входных объектов имеет идентичные свойства и значения, будет выбран только один член подмножества.

В этом параметре учитывается регистр. В результате строки, которые отличаются только регистром символов, считаются уникальными.

Пример 5: Выбрать уникальные символы из массива

PS C:\>"a","b","c","a","a","a" | Select-Object -Unique

a
b
c

Эта команда использует параметр Unique для Select-Object для получения уникальных символов из массива символов.

5
Nkosi 27 Ноя 2016 в 08:52

Есть несколько способов сделать это. Если это для сценария, я рекомендую использовать полные имена команд вместо псевдонимов.

     $name = ( "hi", "hello", "hello" )
     $name | Sort-Object -Unique
     $name | Get-Unique

Ради удовольствия, давайте глубоко нырнем.

Get-Member -InputObject $name

Это даст нам представление о различных свойствах и методах массива, таких как свойство длины. Попробуем использовать их как операторы точки.

$name.Length

У нас есть длина массива.

Я в этом не гений. Я просто знаю, как пользоваться встроенной справкой.

Get-Help *arrays* -full
Get-Help *about*
Get-Help Get-Member -full
Get-Help Get-Command

Получайте удовольствие и исследуйте!

2
WorWin 27 Ноя 2016 в 09:05
$youarray="element1", "element2", "element1"

#solution with unique select
$youarray | select -Unique


#solution with group by
$youarray | group {$_} | select Name
0
Esperento57 27 Ноя 2016 в 09:07