Introducción a la matriz en PowerShell

La matriz es un tipo de estructura de datos que se puede usar para almacenar una colección de artículos, la colección de artículos puede ser del mismo tipo de datos o diferente. Se puede acceder a los elementos de una matriz utilizando el índice. El índice de la matriz generalmente comienza en 0, por lo que para acceder al primer elemento debe usar el índice (0). Por lo general, solo dos operaciones pueden estar en una matriz, es decir, agregar un elemento a la matriz o eliminar un elemento. En este artículo, vamos a aprender sobre la matriz en PowerShell.

Definición de una matriz en PowerShell

Una matriz se puede definir de cualquiera de las siguientes maneras,

@ () Es una de las formas de definir una matriz.

Ejemplo:

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

  • También se puede crear una matriz como una lista separada por comas.

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

  • Se puede crear una matriz para un elemento de tipo de datos específico de la siguiente manera,

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

Lo anterior es una matriz de enteros y solo puede contener valores enteros.

Accediendo a una matriz

Definamos una matriz,

Ejemplo:

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

$ test (0) devolverá test1, $ test (3) devolverá test4. Muchos idiomas permiten especificar un solo índice, mientras que en PowerShell se pueden usar varios índices simultáneamente.

En la prueba $ anterior (1, 3) volverá,

prueba2

prueba4

Operaciones en una matriz

Agregar elementos a una matriz. Veamos un ejemplo de cómo agregar un elemento a una matriz existente.

Ejemplo:

('welcome', 'home')

Para agregar a la matriz anterior, se utiliza el operador '+ ='.

$ prueba + = 'Raj'

Ejecutar $ test regresará,

Bienvenido

hogar

Raj

Obtener el recuento de una matriz

Aquí explicamos cómo usar la siguiente entrada para obtener el recuento de una matriz.

Entrada:

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

$ test.Count devolverá 6, que es el recuento / longitud de la matriz.

1. Ordenar los elementos en una matriz

El operador de clasificación se puede utilizar para ordenar los elementos de una matriz si los elementos son del mismo tipo de datos.

Entrada:

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

El comando anterior ordenará los elementos en orden ascendente.

Salida:

Entrada:

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

Salida:

2. Actualización de elemento en una matriz

El índice se puede usar para actualizar un elemento en la matriz

Entrada:

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

El comando anterior cambiará el 'uno' a 'cambiado'. La ejecución de $ test devolverá

Salida:

3. Encontrar un elemento en una matriz

Para verificar el valor de una matriz, se puede usar el operador similar

Entrada:

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

Salida:

Matriz multidimensional en PowerShell

Podemos crear una matriz multidimensional de la siguiente manera,

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

Cada matriz tiene una fila y tres columnas.

Bucle de una matriz

Al igual que en cualquier otro idioma, el bucle for se puede usar para buclear elementos en una matriz.

Entrada:

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

Salida :

For-each se puede usar para realizar una acción contra cada elemento de la matriz.

Entrada:

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

Salida:

Lista de matrices en PowerShell

Uno de los inconvenientes de Array es agregarle elementos, para superar que tenemos una lista de matrices.

La siguiente es la sintaxis para crear una Lista de matrices,

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

La primera línea es la forma de inicializar una Lista de matrices y las líneas siguientes son agregar elementos a la Lista de matrices

Array vs Array Lista de rendimiento

Los siguientes ejemplos muestran la diferencia en el rendimiento al realizar una operación en una matriz y una lista de matrices

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

El primer comando realiza una operación en la matriz y la tercera línea lo hace en una lista de matriz.

Salida:

  • Rendimiento de matriz

  • Rendimiento de la lista de matrices

El rendimiento de la lista de la matriz es más rápido y mejor que el de la matriz.

Ejemplo de matriz en PowerShell

El siguiente es un ejemplo para encontrar la longitud de una matriz usando for loop, foreach loop y while loop.

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

Salida:

Tabla de picadillo

La tabla hash se usa para implementar una matriz estructurada. En la tabla hash, los valores se almacenan en un formato clave-valor. También se conocen como diccionario o matriz asociativa.

Sintaxis:

()

O

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

Donde key1, key2 y key3 son las claves y test1, test2 y test3 son los valores.

Entrada :

$testhashtable

Salida:

Se puede acceder a la clave o los valores de la siguiente manera utilizando el operador .dot

Entrada:

$testhashtable.keys

Salida:

Entrada:

$testhashtable.Values

Salida:

Ejemplo

El siguiente es un ejemplo para encontrar todas las claves de tabla hash y valores de tabla hash.

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

Salida:

Conclusión: matriz en PowerShell

La principal ventaja de una matriz es la gestión de la memoria. Se puede acceder directamente desde el caché, lo que ayuda a una recuperación más rápida. Son reutilizables, una vez que se declara, se pueden reutilizar varias veces.

Artículos recomendados

Esta es una guía de Array en PowerShell. Aquí discutimos la introducción y la implementación de una matriz, una lista de matrices y una tabla hash en PowerShell. También puede consultar los siguientes artículos para obtener más información:

  1. PowerShell vs CMD
  2. Las 7 mejores versiones de PowerShell
  3. Ventajas de la matriz
  4. Diferencia clave entre PowerShell y Bash

Categoría: