TEMA
    about_Arrays

DESCRIPCIÓN BREVE
    Estructura de datos compacta para almacenar elementos de datos

DESCRIPCIÓN DETALLADA
    Una matriz consiste en una estructura de datos para almacenar una 
    colección de elementos de datos del mismo tipo. Windows 
    PowerShell admite elementos de datos, como string, int (entero de 
    32 bits), long (entero de 64 bits), bool (booleano), byte y otros 
    tipos de objetos de Microsoft .NET Framework . 

CREAR E INICIALIZAR UNA MATRIZ
    Para crear e inicializar una matriz, debe asignar varios valores a una 
    variable.
    Los valores almacenados en la matriz están delimitados con una coma y 
    separados del nombre de la variable por el operador de asignación (=). 

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

        $A = 22,5,10,8,12,9,80

    También puede crear e inicializar una matriz con el operador de 
    intervalo (..). Por ejemplo, para crear e inicializar una matriz 
    llamada $B que contenga los valores del 5 al 8, escriba:

        $B = 5..8

    Como resultado, la matriz $B contiene cuatro valores: 5, 6, 7 y 8.

    Cuando no se especifica el tipo de datos, Windows PowerShell crea cada 
    matriz como una matriz de objetos (tipo: object[]). Para determinar 
    el tipo de datos de una matriz, use el método GetType(). Por ejemplo, 
    para determinar el tipo de datos de la matriz $a, escriba:

        $a.gettype()

    Para crear una matriz con establecimiento inflexible de tipos (es 
    decir, una matriz que pueda contener únicamente valores de un 
    determinado tipo), convierta la variable como un tipo de matriz, 
    por ejemplo, string[], long[] o int32[]. Para convertir una matriz, 
    el nombre de la variable debe ir precedido de un tipo de matriz 
    especificado entre corchetes. Por ejemplo, para crear una matriz de 
    enteros de 32 bits denominada $ia y que contenga cuatro enteros 
    (1500, 2230, 3350 y 4000), escriba:

        [int32[]]$ia = 1500,2230,3350,4000

    Como resultado, la matriz $ia puede contener solo números enteros.

    Puede crear matrices que se conviertan en cualquier tipo 
    compatible en Microsoft .NET Framework. Por ejemplo, los objetos que
    Get-Process 
    recupera para representar procesos son del tipo System.Diagnostics.
    Process. Para crear una matriz de objetos de proceso con establecimiento 
    inflexible de tipos, escriba el siguiente comando:

        [Diagnostics.Process[]]$zz = Get-Process

    Puede rellenar una matriz utilizando la salida de un cmdlet, una 
    función o una instrucción. Por ejemplo, la instrucción siguiente 
    crea una matriz que contiene los procesos que comienzan por las 
    letras "co" y que se están ejecutando en el equipo actual:

        $LocalProcesses = get-process co*

    Si la instrucción obtiene un único proceso, la variable 
    $LocalProcesses no será una matriz. Para asegurarse de que el 
    comando cree una matriz, se utiliza el operador de subexpresión 
    de matriz, @, como se muestra en el ejemplo siguiente:

        $LocalProcesses = @(get-process co*)

    Aunque el comando devuelva un único proceso, la variable 
    $LocalProcesses es una matriz. Aunque tenga un solo miembro, es 
    posible tratarla como cualquier otra matriz. Por ejemplo, se le pueden 
    agregar otros objetos. Para obtener más información, vea about_Operators.

 
LEER UNA MATRIZ
    Puede hacer referencia a una matriz mediante el nombre de variable 
    correspondiente, como $A o $a. Windows PowerShell no distingue entre 
    mayúsculas y minúsculas.

    Para mostrar todos los elementos de la matriz, se escribe su 
    nombre. Por ejemplo:

	$a

    Es posible hacer referencia a los elementos de una matriz 
    mediante un índice, con el inicio en la posición 0. El número de 
    índice debe especificarse entre corchetes. Por ejemplo, para 
    mostrar el primer elemento de la matriz $a, escriba:

        $a[0]

    Para mostrar el tercer elemento de la matriz $a, escriba:

        $a[2]

    Los números negativos se aplican desde el final de la matriz. Por 
    ejemplo, "-1" hace referencia al último elemento de la matriz. 
    Para mostrar los tres últimos elementos de la matriz, escriba:

        $a[-3..-1]

    No obstante, proceda con precaución cuando use esta notación.

        $a[0..-2]

    Este comando no hace referencia a todos los elementos de la matriz, solo al
    último elemento.
    Hace referencia a los elementos primero, último y penúltimo de la 
    matriz.
   
    Puede usar el operador de intervalo para mostrar un subconjunto 
    de todos los valores de una matriz. Por ejemplo, para mostrar los 
    elementos de datos en las posiciones de índice del 1 al 3, escriba:

        $a[1..3]

    El operador de suma (+) se puede usar para combinar un intervalo 
    con una lista de elementos de una matriz. Por ejemplo, para 
    mostrar los elementos de las posiciones de índice 0, 2 y del 4 al 
    6, escriba:

        $a[0,2+4..6]

    Para determinar cuántos elementos contiene una matriz, se combina el 
    intervalo con la propiedad length de la matriz. Por ejemplo, para 
    mostrar los elementos desde la posición de índice 2 al final de 
    la matriz, escriba:

        $a[2..($a.length-1)]

    La propiedad length está establecida en -1 porque el índice 
    comienza en la posición 0. Por tanto, en una matriz de tres elementos 
    (1,2,3), el índice del tercer elemento es 2, uno menos que la 
    longitud de la matriz.


    También se pueden usar construcciones de bucle, como bucles 
    Foreach, For y While, para hacer referencia a los elementos de 
    una matriz. Por ejemplo, para usar un bucle Foreach a fin de 
    mostrar los elementos de la matriz $a, escriba: 

        foreach ($element in $a) {$element}

    El bucle Foreach recorre la matriz en iteración y devuelve cada 
    valor de ésta hasta llegar al final de la misma.

    El bucle For es útil cuando se usan contadores que aumentan 
    mientras se examinan los elementos de una matriz. Por ejemplo, 
    para devolver los valores de una matriz de forma alternada (es 
    decir, uno sí y otro no) mediante un bucle For, escriba:

        for ($i = 0; $i -le ($a.length - 1); $i += 2) {$a[$i]}

    Puede usar un bucle While para mostrar los elementos de una 
    matriz hasta que una condición definida deje de ser verdadera. 
    Por ejemplo, para mostrar los elementos de la matriz $a mientras 
    el índice de la misma sea inferior a 4, escriba:

        $i=0
        while($i -lt 4) {$a[$i]; $i++}

    Para obtener información acerca de las propiedades y los métodos 
    de una matriz, como la propiedad Length y el método SetValue, se 
    usa el parámetro InputObject del cmdlet Get-Member. Cuando se 
    canaliza una matriz a Get-Member, se muestra información acerca de los 
    objetos de la matriz. Cuando se usa el parámetro InputObject, se muestra 
    información acerca de la matriz. 

    Para buscar las propiedades y métodos de la matriz $a, escriba:

	get-member -inputobject $a


MANIPULAR UNA MATRIZ
    Es posible cambiar los elementos de una matriz, agregarle elementos y 
    combinar los valores de dos matrices en una tercera.

    Para cambiar el valor de un elemento concreto de una matriz, se 
    especifican el nombre de esta última y el índice del elemento que 
    se desea cambiar. A continuación, se usa el operador de 
    asignación (=) para especificar el nuevo valor del elemento. Por 
    ejemplo, para cambiar el valor del segundo elemento de la matriz $a 
    (posición de índice 1) a 10, escriba:

        $a[1] = 10

    También puede usar el método SetValue de una matriz para cambiar 
    un valor. En el siguiente ejemplo se cambia el segundo valor 
    (posición de índice 1) de la matriz $a a 500:

        $a.SetValue(500,1)

    Puede anexar un elemento a una matriz existente mediante el 
    operador +=.
    Este operador suma a un valor existente. Cuando el operador se 
    aplica a un elemento de una matriz, aumenta el valor del 
    elemento. Si el operador se aplica a la propia matriz, anexa el 
    valor. Por ejemplo, para anexar un elemento con el valor 200 a la 
    matriz $a, escriba:

        $a += 200

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

        $t = $a[0,1 + 3..($a.length - 1)]

    Para combinar dos matrices en una sola, se usa el operador de 
    suma (+). En el siguiente ejemplo se crean dos matrices, se las 
    combina y, a continuación, se muestra la matriz combinada resultante.

        $x = 1,3
        $y = 5,9
        $z = $x + $y

    Como resultado, la matriz $z contiene 1, 3, 5 y 9.

    Si se desea eliminar una matriz, se puede usar el cmdlet 
    Remove-Item para eliminar la variable que contiene la matriz. El 
    siguiente comando especifica el elemento "a" en la unidad Variable:. 

        remove-item variable:a

    (Para obtener más información acerca de la unidad Variable:, vea el tema de 
    Ayuda del proveedor Variable.)


VEA TAMBIÉN
    about_Assignment_Operators
    about_Hash_Tables
    about_Operators
    about_For
    about_Foreach
    about_While




Tabla de contenido