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:
- PowerShell vs CMD
- Las 7 mejores versiones de PowerShell
- Ventajas de la matriz
- Diferencia clave entre PowerShell y Bash