Introdução à matriz no PowerShell
A matriz é um tipo de estrutura de dados que pode ser usada para armazenar uma coleção de itens; a coleção de itens pode ser do mesmo tipo de dados ou diferente. Os elementos em uma matriz podem ser acessados usando o índice. O índice da matriz geralmente começa em 0, portanto, para acessar o primeiro elemento, você deve usar o índice (0). Normalmente, apenas duas operações podem estar em uma matriz, ou seja, adicionando um elemento à matriz ou removendo um elemento. Neste artigo, vamos aprender sobre a matriz no PowerShell.
Definindo uma matriz no PowerShell
Uma matriz pode ser definida de qualquer uma das seguintes maneiras,
O @ () é uma das maneiras de definir uma matriz.
Exemplo:
$Subject = @('History', 'Geo', 'Maths')
- Uma matriz também pode ser criada como uma lista separada por vírgula.
$test='testone', 'testtwo', 'testthree'
- Uma matriz pode ser criada para um elemento de tipo de dados específico da seguinte maneira:
(int()) $numbersarray = 1, 2, 3, 4, 5
O acima é uma matriz inteira e pode conter apenas valores inteiros.
Acessando uma matriz
Vamos definir uma matriz,
Exemplo:
('test1', 'test2', 'test3', 'test4')
$ test (0) retornará test1, $ test (3) retornará test4. Muitos idiomas permitem que apenas um único índice seja especificado, enquanto no PowerShell vários índices podem ser usados simultaneamente.
No teste acima, $ test (1, 3) retornará,
test2
test4
Operações em uma matriz
Adicionando itens a uma matriz. Vamos ver um exemplo de como adicionar um elemento a uma matriz existente.
Exemplo:
('welcome', 'home')
Para adicionar à matriz acima, o operador '+ =' é usado.
$ test + = 'Raj'
A execução de $ test retornará,
bem-vinda
casa
Raj
Obtendo a contagem de uma matriz
Aqui explicamos como usar a seguinte entrada para obter a contagem de uma matriz.
Entrada:
('test1', 'ertr', 'fgdfgfd', 'dfgfdg', 'dfdfsd', 'dfgfdgdfg')
$ test.Count retornará 6, que é a contagem / comprimento da matriz.
1. Classificando os elementos em uma matriz
O operador de classificação pode ser usado para classificar os elementos de uma matriz se os elementos forem do mesmo tipo de dados.
Entrada:
('oneee', 'zddsdsad', 'thraewawe')
$test |sort
O comando acima classificará os elementos na ordem crescente
Resultado:
Entrada:
$test |sort -Descending will sort the elements in the descending order
Resultado:
2. Atualizando item em uma matriz
O índice pode ser usado para atualizar um elemento na matriz
Entrada:
('oneee', 'zddsdsad', 'thraewawe')
$test(0)='changed'
O comando acima mudará o 'um' para 'alterado'. A execução de $ test retornará
Resultado:
3. Localizando um elemento em uma matriz
Para verificar uma matriz quanto ao valor, o operador like pode ser usado
Entrada:
('viki', ramu, 'aravind', 'vikram')
$test -like "*vik*"
Resultado:
Matriz multidimensional no PowerShell
Podemos criar uma matriz multidimensional da seguinte maneira:
$testMultidimensionalArrays = @(1, 2, 3), @(4, 5, 6), @(7, 8, 9)
Cada matriz possui uma linha e três colunas.
Looping uma matriz
Como em qualquer outro idioma, o loop for pode ser usado para fazer loop de itens em uma matriz.
Entrada:
('viki', 'ramu', 'aravind', 'vikram')
for($i=0;$i -lt $test.Length; $i++)
(
Write-Host $test($i) )
Saída :
For-each pode ser usado para executar uma ação contra cada item na matriz.
Entrada:
(1, 4, 5, 6, 7, 8, 9, 10)
foreach($i in $test)
(
$i=$i+5
Write-Host $i
)
Resultado:
Lista de matrizes no PowerShell
Uma das desvantagens do Array é adicionar itens a ele, para superar o fato de termos uma lista de arrays.
A seguir, é apresentada a sintaxe para criar uma lista de matrizes,
$myarray = (System.Collections.ArrayList)::new()
$myarray.Add(1)
$myarray.Add(2)
$myarray.Add(3)
$myarray
A primeira linha é a maneira de inicializar uma lista de matrizes e as linhas subseqüentes são adicionar itens ao ArrayList
Matriz x desempenho da lista de matrizes
Os exemplos a seguir mostram a diferença de desempenho ao executar uma operação em uma matriz e lista de matrizes
Entrada:
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
O primeiro comando executa uma operação na matriz e a terceira linha faz o mesmo em uma lista de matrizes.
Resultado:
- Desempenho da matriz
- Desempenho da lista de matrizes
O desempenho da lista de matrizes é mais rápido e melhor que o da matriz.
Exemplo de matriz no PowerShell
A seguir, é apresentado um exemplo para encontrar o comprimento de uma matriz usando o loop for, o loop foreach e o loop while.
Entrada:
$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
Resultado:
Tabela de hash
A tabela de hash é usada para implementar uma matriz estruturada. Na tabela de hash, os valores são armazenados em um formato de valor-chave. Eles também são conhecidos como dicionário ou matriz associativa.
Sintaxe:
()
Ou
( key1=”test1”;key2=”test2”;key3=”test3”)
Onde key1, key2 e key3 são as chaves e test1, test2 e test3 são os valores.
Entrada :
$testhashtable
Resultado:
A chave ou os valores podem ser acessados da seguinte maneira usando o operador .dot
Entrada:
$testhashtable.keys
Resultado:
Entrada:
$testhashtable.Values
Resultado:
Exemplo
A seguir, é apresentado um exemplo para encontrar todas as chaves de hashtable e valores de hashtable.
Entrada:
$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
Resultado:
Conclusão - Matriz no PowerShell
A principal vantagem de uma matriz é o gerenciamento de memória. Eles podem ser acessados diretamente do cache, o que ajuda na recuperação mais rápida. Eles são reutilizáveis, uma vez declarados, podem ser reutilizados várias vezes.
Artigos recomendados
Este é um guia para Matriz no PowerShell. Aqui discutimos a introdução e a implementação de uma matriz, lista de matrizes e tabela de hash no PowerShell. Você também pode consultar os seguintes artigos para saber mais -
- PowerShell vs CMD
- As 7 principais versões do PowerShell
- Vantagens da matriz
- Diferença principal entre o PowerShell e o Bash