Acerca de las Matrices

0 Comments
  • 08/26/2020
  • 14 minutos para leer
    • S
    • s
    • c

Breve Descripción

Describe las matrices, que son estructuras de datos diseñadas para storecollections de los elementos.

Descripción larga

una matriz es una estructura de datos que está diseñada para almacenar una colección de elementos.Los elementos pueden ser del mismo tipo o diferentes tipos.

a partir de Windows PowerShell 3.,0, una colección de cero o un objeto hassome propiedades de matrices.

Crear e inicializar una matriz

Para crear e inicializar una matriz, asignar varios valores a una variable. Los valores almacenados en el array son delimitados con una coma y separados del nombre variable por el operador de asignación (=).,

por ejemplo, para crear una matriz llamada $A que contenga los siete valores numéricos (int) de 22, 5, 10, 8, 12, 9, y 80, escriba:

la coma También se puede usar para inicializar una matriz de un solo elemento colocando thecomma antes del único elemento.

por ejemplo, para crear una matriz de un solo elemento llamada $B que contenga el valor único de 7, escriba:

También puede crear e inicializar una matriz utilizando el operador de rango (..).,El siguiente ejemplo crea una matriz que contiene los valores del 5 al 8.

Como resultado, $C contiene cuatro valores: 5, 6, 7, y 8.

Cuando no se especifica ningún tipo de datos, PowerShell crea cada matriz como un objectarray (System.Objeto). Para determinar el tipo de datos de una matriz, utilice el método GetType ()., Por ejemplo, para determinar el tipo de datos de la matriz $A, escriba:

para crear una matriz de tipo fuerte, es decir, una matriz que solo puede contener valores de un tipo particular, convierta la variable como un tipo de matriz, como String, long o int32. Para convertir un array, precede al nombre variable con un tipo de array encerrado entre paréntesis., Por ejemplo, para crear una matriz entera de 32 bits llamada $ia que contiene cuatro enteros (1500, 2230, 3350 y 4000), escriba:

como resultado, la matriz $ia enteros.

Puede crear matrices que se convierten a cualquier tipo compatible en el Microsoft.NET Marco. Por ejemplo, los objetos que Get-Process recupera los procesos presentes son del sistema.Diagnostico.Tipo de proceso., Para crear un array de objetos de proceso con un tipo Fuerte, ingrese el siguiente comando:

el operador de subexpresión del array

el operador de subexpresión del array crea un array a partir de las sentencias insideit. Cualquiera que sea la instrucción dentro del operador produce, el operador lo colocará en una matriz. Incluso si hay cero o un objeto.

la sintaxis del operador de matriz es la siguiente:

puede usar el operador de matriz para crear una matriz de cero o un objeto., Por ejemplo:

El operador de matriz es útil en secuencias de comandos cuando usted está consiguiendo objetos, pero nose sabe cuántos objetos que usted consigue. Por ejemplo:

para obtener más información sobre el operador de subexpresión de matriz, consulte about_operators.

acceso y uso de elementos de matriz

lectura de una matriz

Puede hacer referencia a una matriz utilizando su nombre de variable. Para mostrar todos los elementos de la matriz, escriba el nombre de la matriz., Por ejemplo, suponiendo que $a es unarray que contiene enteros 0, 1, 2, hasta 9; escribiendo:

Puede hacer referencia a los elementos de una matriz utilizando un índice, comenzando en la posición 0. Incluya el número de índice entre paréntesis., Por ejemplo, para mostrar primeras elemento en el $a array, escriba:

Para mostrar el tercer elemento en el $a matriz, tipo:

Usted puede recuperar parte de la matriz mediante un operador de rango para el índice. Por ejemplo, para recuperar los elementos del segundo al quinto de la matriz, debe escribir:

Los Números Negativos cuentan desde el final de la matriz., Por ejemplo, » -1 » se refiere al último elemento de la matriz. Para mostrar los tres últimos elementos del array, en orden ascendente del Índice, escriba:

Si escribe índices negativos en orden descendente, su salida cambia.

sin Embargo, tenga cuidado al usar esta notación. La notación realiza ciclos desde el límite final hasta el comienzo del array.,

puede usar el operador plus (+) para combinar rangos con una lista de elementos en una matriz. Por ejemplo, para mostrar los elementos en las posiciones de índice 0, 2, Y4 a 6, escriba:

Además, para enumerar varios rangos y elementos individuales, puede usar el plusoperator., Por ejemplo, para listar elementos de cero a dos, de cuatro a seis, y el elemento en octavo tipo posicional:

iteraciones sobre elementos de matriz

También puede usar construcciones de bucle, como los bucles ForEach, For Y While, para referirse a los elementos de una matriz. Por ejemplo, para usar un bucle ForEach para mostrar los elementos en el array $a, escriba:

El bucle Foreach itera a través del array y devuelve cada valor en el array hasta llegar al final del array.,

El bucle For es útil cuando se incrementan los contadores mientras se examinan los elementos de una matriz. Por ejemplo, para usar un bucle For para devolver todos los demás valores en un array, escriba:

puede usar un bucle While para mostrar los elementos en un array hasta que una condición definida ya no sea verdadera., Por ejemplo, para mostrar los elementos en el array $amientras el índice del array es inferior a 4, Escriba:

propiedades de los arrays

Count o Length o LongLength

para determinar cuántos elementos hay en una matriz, utilice la propiedad Length o su aliasCount. Longlength es útil si el array contiene más de 2, 147, 483, 647 elementos.

Clasificación

Devuelve el número de dimensiones de la matriz., La mayoría de los arrays en PowerShell solo tienen una dimensión. Incluso cuando cree que está construyendo un array multidimensional; como el siguiente ejemplo:

el siguiente ejemplo muestra cómo crear un array verdaderamente multidimensional utilizando.Net Framework.

Methods of arrays

Clear

establece todos los valores de los elementos al valor predeterminado del tipo de elemento de la matriz.El método Clear() no restablece el tamaño de la matriz.,

en el siguiente ejemplo $a es una matriz de objetos.

En este ejemplo, $intA está explícitamente escrito para contener números enteros.

ForEach

Permite iterar sobre todos los elementos del conjunto y realizar un determinado operationfor cada elemento de la matriz.

El método ForEach tiene varias sobrecargas que realizan diferentes operaciones.,

ForEach(expresión scriptblock)

ForEach (expresión scriptblock, argumentos de objeto)

Este método se agregó en PowerShell v4.

Nota

la sintaxis requiere el uso de un bloque de script. Los paréntesis son opcionales si el bloque script es el único parámetro. Además, no debe haber un espacio entre el método y el paréntesis o paréntesis de apertura.

el siguiente ejemplo muestra cómo usar el método foreach. En este caso, la intención es generar el valor cuadrado de los elementos en la matriz.,

como el -ArgumentList parámetro de ForEach-Object, el argumentsparámetro permite el paso de una matriz de argumentos a una secuencia de comandos blockconfigured a aceptarlos.

para obtener más información sobre el comportamiento de ArgumentList, consulte about_splatting.,

ForEach(type convertToType)

el método ForEachse puede usar para convertir rápidamente los elementos a un tipo diferente; el siguiente ejemplo muestra cómo convertir una lista de fechas de cadena a type.

ForEach(string propertyName)

ForEach(string propertyName, objeto newValue)

El ForEach método también puede utilizarse para recuperar rápidamente, o conjunto de propertyvalues para cada elemento en la colección.,

ForEach(string methodName)

ForEach(string methodName, object arguments)

Por último, ForEach los métodos se pueden utilizar para ejecutar un método en cada elemento de la colección.

como el -ArgumentList parámetro de ForEach-Object, el argumentsparámetro permite el paso de una matriz de argumentos a una secuencia de comandos blockconfigured a aceptarlos.

Nota

a partir de Windows PowerShell 3.,0 recuperar propiedades y ejecutar métodos para cada elemento de una colección también se puede lograr usando «Methodsof scalar objects and collections» puede leer más sobre eso aquí.

donde

permite filtrar o seleccionar los elementos del array. El script debe evaluar cualquier cosa diferente a: cero (0), cadena vacía, $false o $null para que el elemento se muestre después del Where

hay una definición para el Where método.,

Nota

La sintaxis requiere el uso de un bloque de secuencia de comandos. Los paréntesis son opcionales si el bloque script es el único parámetro. Además, no debe haber un espacio entre el método y el paréntesis o paréntesis de apertura.

el Expressiones scriptblock que se requiere para filtrar, el modeargumento opcional permite capacidades de selección adicionales, y elnumberToReturn argumento opcional permite la capacidad de limitar cuántos artículos se devuelven desde el filtro.,p>los valores aceptables para mode son:

  • Default (0) – Return all items
  • First (1) – Return the first item
  • Last (2) – Return the last item
  • SkipUntil (3) – Skip items until condition is true, the return the remainingitems
  • Until (4) – Return all items until condition is True
  • Split (5) – devuelve una matriz de dos elementos
    • El primer elemento contiene elementos coincidentes
    • El segundo elemento contiene los elementos restantes

el siguiente ejemplo muestra cómo seleccionar todos los números impares de la matriz.,

en Este ejemplo se muestra cómo seleccionar las cadenas que no están vacías.

por Defecto

El Default modo de filtros de elementos con la etiqueta Expression bloque script.

si se proporciona un numberToReturn, especifica el número máximo de ítems a devolver.,

Nota

tanto el modo Default como el modo First devuelven los primeros elementos(numberToReturn), y se pueden usar indistintamente.

Last

SkipUntil

el modo SkipUntil omite todos los objetos de una colección hasta que un objeto pasa el filtro de expresión de bloque de script. Luego devuelve todos los elementos de colección restantes sin probarlos. Solo se prueba un artículo que pasa.

esto significa que la colección devuelta contiene elementos pasantes y no pasantes que no se han probado.,

el número de elementos devueltos se puede limitar pasando un valor al argumentonumberToReturn.

Hasta

El Until modo invierte el SkipUntil modo. Devuelve todos los elementos en acollection hasta que un elemento pasa la expresión de bloque de script. Una vez que un itempasses la expresión scriptblock, el método Where detiene el procesamiento de elementos.

esto significa que recibe el primer conjunto de elementos no pasantes del métodoWhere., Después de que un artículo pasa, el resto no se prueba ni se devuelve.

el número de elementos devueltos se puede limitar pasando un valor al argumentonumberToReturn.

Note

Both Untiland SkipUntil operate under the premise of NOT testing a batchof items.

Until devuelve los elementos ANTES de la primera pasada.

SkipUntil devuelve todos los elementos después de la primera pasada, incluido el primer elemento de pasada.,

Split

el modo Split divide o agrupa los elementos de la colección en dos colecciones separadas. Aquellos que pasan la expresión scriptblock, y aquellos que no lo hacen.

si se especifica un numberToReturn , la primera colección contiene los elementos pasantes, sin exceder el valor especificado.

los objetos restantes, incluso aquellos que pasan el filtro de expresión, se encuentran en la segunda colección.,

obtener los miembros de una matriz

para obtener las propiedades y métodos de una matriz, como la propiedad Length y el método SetValue, utilice el parámetro InputObject del cmdlet Get-Member.

cuando canaliza una matriz a Get-Member, PowerShell envía los elementos en un momento y Get-Member devuelve el tipo de cada elemento de la matriz (ignoringduplicates).

cuando se utiliza el parámetro InputObject, Get-Member devuelve los miembros de la matriz.,

por ejemplo, el siguiente comando obtiene los miembros del$a arrayvariable.

También puede obtener los miembros de una matriz escribiendo una coma (,) antes del valor que se canaliza al cmdlet Get-Member. La coma hace que el array sea el segundo elemento en un array de arrays. PowerShell canaliza los arrays una vez y Get-Member devuelve los miembros del array. Como los siguientes dos ejemplos.,

manipular una matriz

puede cambiar los elementos de una matriz, agregar un elemento a una matriz y combinar los valores de dos matrices en una tercera matriz.

para cambiar el valor de un elemento en particular en una matriz, especifique el arrayname y el índice del elemento que desea cambiar, y luego use el operador assignment (=) para especificar un nuevo valor para el elemento., Por ejemplo, para cambiar el valor del segundo elemento en el array $a (posición de índice 1) a 10, escriba:

También puede usar el método SetValue de un array para cambiar un valor. El siguiente ejemplo cambia el segundo valor (posición de índice 1) del $a arrayto 500:

puede usar el operador += para agregar un elemento a una matriz. El ejemplo siguiente muestra cómo agregar un elemento a la matriz $a.,

Nota

Cuando se utiliza el operador +=, PowerShell crea una nueva matriz con los valores de la matriz original y el valor añadido. Esto puede deberse a problemas de rendimiento si la operación se repite varias veces o el tamaño de la matriz es demasiado grande.

no es fácil eliminar elementos de una matriz, pero puede crear una nueva matriz que contenga solo elementos seleccionados de una matriz existente., Por ejemplo,para crear la matriz $t con todos los elementos de la matriz $a excepto el valor en la posición de índice 2, escriba:

para combinar dos matrices en una sola matriz, use el operador plus (+). El siguiente ejemplo crea dos matrices, las combina y, a continuación, muestra la matriz combinada resultante.

Como resultado, el $z array contiene 1, 3, 5 y 9.,

para eliminar una matriz, asigne un valor de $null a la matriz. El siguiente comando elimina el array en la variable $a.

$a = $null

También puede usar el cmdlet Remove-Item, pero asignando un valor de $null isfaster, especialmente para matrices grandes.

matrices de cero o uno

a partir de Windows PowerShell 3.0, una colección de cero o un objeto tiene la propiedad Count and Length. Además, puede indexar en una matriz de oneobject., Esta característica le ayuda a evitar errores de scripting que se producen cuando un comando que espera que una colección obtenga menos de dos elementos.

los siguientes ejemplos demuestran esta característica.

Cero objetos

Un objeto

Indexación de apoyo para el Sistema.PowerShell 6.1 agregó el soporte para el acceso indexado de objetos de tupla, similar a los arrays.,Por ejemplo:

a diferencia de los arrays y otros objetos de colección, los objetos de tupla se tratan como un objeto individual cuando se pasan a través de la canalización o por parámetros que soportan rayas de objetos.

Para obtener más información, consulte Sistema.Tuple.

Véase también

  • about_Assignment_Operators
  • about_Hash_Tables
  • about_Operators
  • about_For
  • about_Foreach
  • about_While


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *