Arrays


Массивы

Создание массива

Создать массив и узнать количество элементов

Wake up, Neo, select all

$arr = @(1, "Hello", 15)
$arr.Count

Создать массив можно и без @()

Wake up, Neo, select all

$arr = 1, "Hello", 15

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

Wake up, Neo, select all

$planets = @(
"Меркурий",
"Венера",
"Земля",
"Марс"
)

Еще @() позволяет создать пустой массив

Wake up, Neo, select all

$arr = @()

$arr.Count

Обращение к элементам массива

По индексу

Wake up, Neo, select all

$arr = @(
"name",
"My",
"is",
"Bond",
"James"
)

Первый элемент

Wake up, Neo, select all

$arr[0]

Последний элемент (первый с конца-1)

Wake up, Neo, select all

$arr[-1]

Последний и предпоследний (первый с конца-1 и второй с конца-2)

Wake up, Neo, select all

$arr[-1, -2]

Элементы с первого по третий

Wake up, Neo, select all

$arr[0..2]

Можно брать элементы более одного раза
Возьмем элементы в правильном порядке, как в фильме, использовав два раза четвертый элемент

Wake up, Neo, select all

$arr[1,0,2,3,-1,3]

По значению или определенному условию

Возьмем слова, в которых присутствует "am"

Wake up, Neo, select all

$arr -match "am"

Возьмем слова, длина которых 4 символа

Wake up, Neo, select all

$arr | Where-Object {$_.Length -eq 4}

Вложенные массивы

Всё так же, как и в обычном массиве, только элементом массива является тоже массив.

Wake up, Neo, select all

$data = @(
@(1, 2, 3),
@(4, 5, 6),
@(7, 8, 9)
)

Получим цифру 4
Видим, что она находится во втором массиве на первом месте

Wake up, Neo, select all

$data[1][0]

Операции над массивами

Добавим число 7 в конец массива

Wake up, Neo, select all

$arr = 1, 3, 5
$arr += 7

Сложим два массива

Wake up, Neo, select all

$arr1 = 1, 3, 5
$arr2 = 7, 9, 11

$arr3 = $arr1 + $arr2

Умножим массив на 2

Wake up, Neo, select all

$arr = 1, 3, 5
$arr * 2

Массивы (их структуру) нельзя изменить.
Операции с добавлением элементов += уничтожают исходный массив, собирают элементы для будущего массива, и после создают новый массив.
Для небольших массивов такое действие будет незаметно, но для больших массивов это будет очень ресурсозатратно.
Если над массивами планируется проводить некоторые операции (удаление/добавление/вставка элементов), то рекомендуется использовать коллекции.

Для работы с массивами используются циклы и операторы.
Смотрите примеры в соответствующих статьях.