Введение в массив в PowerShell

Массив представляет собой тип структуры данных, который может использоваться для хранения коллекции элементов, коллекция элементов может быть одного и того же типа данных или разных. Доступ к элементам массива осуществляется с помощью индекса. Индекс массива обычно начинается с 0, поэтому для доступа к первому элементу необходимо использовать индекс (0). Как правило, только две операции могут быть над массивом, то есть добавление элемента в массив или удаление элемента. В этой статье мы собираемся узнать о массиве в PowerShell.

Определение массива в PowerShell

Массив может быть определен любым из следующих способов,

@ () Является одним из способов определения массива.

Пример:

$Subject = @('History', 'Geo', 'Maths')

  • Массив также может быть создан в виде списка через запятую.

$test='testone', 'testtwo', 'testthree'

  • Массив может быть создан для конкретного элемента типа данных следующим образом:

(int()) $numbersarray = 1, 2, 3, 4, 5

Выше приведен целочисленный массив, и он может содержать только целочисленные значения.

Доступ к массиву

Давайте определим массив,

Пример:

('test1', 'test2', 'test3', 'test4')

$ test (0) вернет test1, $ test (3) вернет test4. Многие языки позволяют указывать только один индекс, тогда как в PowerShell можно использовать несколько индексов одновременно.

В приведенном выше $ test (1, 3) вернется,

test2

test4

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

Добавление элементов в массив. Давайте рассмотрим пример того, как добавить элемент в существующий массив.

Пример:

('welcome', 'home')

Для добавления к вышеуказанному массиву используется оператор «+ =».

$ Тест + = 'Раджа'

Запуск $ test вернет,

добро пожаловать

дом

Радж

Получение графа массива

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

Входные данные :

('test1', 'ertr', 'fgdfgfd', 'dfgfdg', 'dfdfsd', 'dfgfdgdfg')

$ test.Count вернет 6, которое является количеством / длиной массива.

1. Сортировка элементов в массиве

Оператор сортировки может использоваться для сортировки элементов массива, если элементы имеют один и тот же тип данных.

Входные данные :

('oneee', 'zddsdsad', 'thraewawe')
$test |sort

Приведенная выше команда отсортирует элементы в порядке возрастания

Выход:

Входные данные :

$test |sort -Descending will sort the elements in the descending order

Выход:

2. Обновление элемента в массиве

Индекс может быть использован для обновления элемента в массиве

Входные данные :

('oneee', 'zddsdsad', 'thraewawe')
$test(0)='changed'

Приведенная выше команда изменит «один» на «измененный». Выполнение $ test вернет

Выход:

3. Нахождение элемента в массиве

Чтобы проверить массив на значение, можно использовать оператор like

Входные данные :

('viki', ramu, 'aravind', 'vikram')
$test -like "*vik*"

Выход:

Многомерный массив в PowerShell

Мы можем создать многомерный массив следующим образом:

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

Каждый массив имеет одну строку и три столбца.

Цикл Массив

Как и в любых других языках, цикл for можно использовать для циклического перемещения элементов в массиве.

Входные данные :

('viki', 'ramu', 'aravind', 'vikram')
for($i=0;$i -lt $test.Length; $i++)
(
Write-Host $test($i) )

Выход :

For-each может использоваться для выполнения действий против каждого элемента в массиве.

Входные данные :

(1, 4, 5, 6, 7, 8, 9, 10)
foreach($i in $test)
(
$i=$i+5
Write-Host $i
)

Выход:

Список массивов в PowerShell

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

Ниже приведен синтаксис для создания списка массивов,

$myarray = (System.Collections.ArrayList)::new()
$myarray.Add(1)
$myarray.Add(2)
$myarray.Add(3)
$myarray

Первая строка - это способ инициализации списка массивов, а последующие - добавление элементов в ArrayList.

Array vs Array List Performance

Следующие примеры показывают разницу в производительности при выполнении операции над массивом и списком массивов.

Входные данные :

Measure-Command -Expression ( 0..250 | ForEach-Object ( $arr += $_+1 ))
$arrlit = (System.Collections.ArrayList)@()
$f arrlit _performance = Measure-Command -Expression ( 0..250 | ForEach-Object ( $ arrlit += $_+1 ))
$ arrlit _performance

Первая команда выполняет операцию с массивом, а третья строка делает то же самое с списком массивов.

Выход:

  • Производительность массива

  • Производительность списка массивов

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

Пример массива в PowerShell

Ниже приведен пример для определения длины массива, использующего цикл for, цикл foreach и цикл while.

Входные данные :

$testlist = 5.634, 4.512323, 3.312323, 13.2213213, 4.02324, 34.3334324, 34.04324, 45.4534324, 99.993234324, 11123234234 write-host("Printing the array elements")
$testlist
write-host("length of array")
$testlist.Length
write-host("fifth element in array")
$testlist(4) write-host("partial array")
$subList = $testlist(1..3) write-host("using for loop")
for ($i = 0; $i -le ($testlist.length - 1); $i += 1) (
$testlist($i) )
write-host("using forEach Loop")
foreach ($e in $testlist) (
$e
)
write-host("using while Loop")
$i = 0
while($i -lt 4) (
$testlist($i);
$i++
)
write-host("Assign values")
$testlist(1) = 10
$testlist

Выход:

Хеш-таблица

Хеш-таблица используется для реализации структурированного массива. В хеш-таблице значения хранятся в формате ключ-значение. Они также известны как словарь или ассоциативный массив.

Синтаксис:

()

Или

( key1=”test1”;key2=”test2”;key3=”test3”)

Где key1, key2 и key3 - это ключи, а test1, test2 и test3 - это значения.

Вход :

$testhashtable

Выход:

Получить доступ к ключу или значениям можно следующим образом, используя оператор .dot

Входные данные :

$testhashtable.keys

Выход:

Входные данные :

$testhashtable.Values

Выход:

пример

Ниже приведен пример для поиска всех ключей хеш-таблицы и значений хеш-таблицы.

Входные данные :

$testht = @( English = "85"; Tamil = "100"; maths = "100")
write-host("Printing all the hashtable keys")
$testht.keys
write-host("Printing all the hashtable values")
$testht.values
write-host("print Size")
$testht.Count
write-host("Add key-value")
$testht("Social") = "100"
write-host("Add key-value")
$testht.Add("ss", "110")
write-host("Size")
$testht.Count
write-host("Remove English")
$testht.Remove("English")
write-host("curentSize")
$testht.Count
write-host("sortinh by key")
$testht.GetEnumerator() | Sort-Object -Property key

Выход:

Вывод - массив в PowerShell

Основным преимуществом массива является управление памятью. Доступ к ним можно получить непосредственно из кеша, что помогает ускорить поиск. Они могут быть использованы повторно, после того как объявлено, что их можно использовать несколько раз.

Рекомендуемые статьи

Это руководство по массиву в PowerShell. Здесь мы обсудим введение и реализацию массива, списка массивов и хеш-таблицы в PowerShell. Вы также можете посмотреть следующие статьи, чтобы узнать больше -

  1. PowerShell против CMD
  2. 7 лучших версий PowerShell
  3. Преимущества массива
  4. Ключевая разница между PowerShell и Bash