Введение в массив в 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. Вы также можете посмотреть следующие статьи, чтобы узнать больше -
- PowerShell против CMD
- 7 лучших версий PowerShell
- Преимущества массива
- Ключевая разница между PowerShell и Bash