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 -

  1. PowerShell vs CMD
  2. As 7 principais versões do PowerShell
  3. Vantagens da matriz
  4. Diferença principal entre o PowerShell e o Bash

Categoria: