ARGOMENTO
    about_Arrays

DESCRIZIONE BREVE
    Descrive una struttura di dati compatta per l'archiviazione degli elementi di dati

DESCRIZIONE DETTAGLIATA
    Una matrice è una struttura di dati per l'archiviazione di una 
    raccolta di elementi di dati dello stesso tipo. Windows 
    PowerShell supporta elementi di dati quali stringa, int (valore 
    intero a 32 bit), long (valore intero a 64 bit), bool (valore 
    booleano), byte e altri tipi di oggetti Microsoft .NET Framework. 

CREAZIONE E INIZIALIZZAZIONE DI UNA MATRICE
    Per creare e inizializzare una matrice, assegnare più valori a 
    una variabile.
    I valori archiviati nella matrice sono delimitati da virgole e 
    separati dal nome della variabile tramite l'operatore di 
    assegnazione (=). 

    Ad esempio, per creare una matrice denominata $A contenente i 
    sette valori numerici (int) 22, 5, 10, 8, 12, 9 e 80, digitare:

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

    È inoltre possibile creare e inizializzare una matrice utilizzando 
    l'operatore di intervallo (..). Per creare e inizializzare, ad 
    esempio, una matrice denominata "$B" contenente i valori da 5 a 8, 
    digitare:

        $B = 5..8

    $B conterrà pertanto i quattro valori 5, 6, 7 e 8.

    Quando non viene specificato alcun tipo di dati, in Windows 
    PowerShell ogni matrice viene creata come matrice di oggetti (tipo: 
    object[]). Per determinare il tipo di dati di una matrice, utilizzare 
    il metodo GetType(). Ad esempio, per determinare il tipo di dati 
    della matrice $a, digitare:

        $a.gettype()

    Per creare una matrice fortemente tipizzata, ovvero una matrice 
    che contenga solo valori di un tipo specifico, eseguire il cast della 
    variabile come tipo di matrice, ad esempio string[], long[] o int32[]. 
    Per eseguire il cast di una matrice, anteporre al nome della variabile  
    un tipo di matrice racchiuso tra parentesi. Ad esempio, per creare una 
    matrice di valori interi a 32 bit denominata $ia contenente quattro 
    valori interi (1500, 2230, 3350 e 4000), digitare:

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

    La matrice $ia potrà pertanto contenere solo valori integer.

    È possibile creare matrici di cui viene eseguito il cast a 
    qualsiasi tipo supportato in Microsoft .NET Framework. Ad esempio, gli oggetti 
    recuperati da Get-Process per rappresentare i processi sono di tipo
    System.Diagnostics.Process. Per creare una matrice fortemente tipizzata di 
    oggetti processo, immettere il comando seguente:

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

    È possibile inserire dati in una matrice tramite l'output di un 
    cmdlet, una funzione o un'istruzione. Ad esempio, con 
    l'istruzione seguente viene creata una matrice contenente i 
    processi che iniziano con le lettere "co" e sono in esecuzione 
    nel computer corrente:

        $LocalProcesses = get-process co*

    Se l'istruzione ottiene solo un processo singolo, la variabile 
    $LocalProcesses non è una matrice. Per assicurarsi che il comando crei una 
    matrice, utilizzare l'operatore della sottoespressione di matrice, @, come 
    illustrato nell'esempio seguente:

        $LocalProcesses = @(get-process co*)

    Anche se il comando restituisce un processo singolo, la variabile 
    $LocalProcesses è una matrice. Anche se dispone di un solo membro, è 
    possibile utilizzarla come qualsiasi altra matrice. Ad esempio, è 
    possibile aggiungere a essa altri oggetti. Per ulteriori 
    informazioni, vedere about_Operators.

 
  LETTURA DI UNA MATRICE
    È possibile fare riferimento a una matrice utilizzando il nome della 
    relativa variabile, ad esempio $A o $a. 
    In Windows PowerShell non viene fatta distinzione tra maiuscole e minuscole.

    Per visualizzare tutti gli elementi della matrice, digitarne il 
    nome. Ad esempio:

	$a

    È possibile fare riferimento agli elementi di una matrice 
    utilizzando un indice, iniziando dalla posizione 0. Racchiudere 
    il numero di indice tra parentesi. Ad esempio, per 
    visualizzare il primo elemento della matrice $a, digitare:

        $a[0]

    Per visualizzare il terzo elemento della matrice $a, digitare:

        $a[2]

    I numeri negativi consentono di iniziare il conteggio dalla fine della 
    matrice. "-1", ad esempio, indica l'ultimo elemento della matrice. Per 
    visualizzare gli ultimi tre elementi della matrice, digitare:

        $a[-3..-1]

    Quando si utilizza questa notazione, è tuttavia necessario fare 
    attenzione.

        $a[0..-2]

    Questo comando non si riferisce a tutti gli elementi della matrice ad esclusione 
    dell'ultimo,
    bensì al primo, all'ultimo e al penultimo elemento.
   
    È possibile utilizzare l'operatore di intervallo per visualizzare un 
    sottoinsieme di tutti i valori di una matrice. Per visualizzare, ad 
    esempio, gli elementi di dati nelle posizioni di indice da 1 a 3, 
    digitare:

        $a[1..3]

    È possibile utilizzare l'operatore più (+) per combinare un 
    intervallo con un elenco di elementi di una matrice. Ad esempio, per 
    visualizzare gli elementi nelle posizioni di indice 0, 2 e dalla 4 alla 6, 
    digitare:

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

    Per determinare il numero di elementi presenti in una matrice, 
    combinare l'intervallo con la proprietà length di una matrice. Per 
    visualizzare, ad esempio, gli elementi dalla posizione di indice 2 
    alla fine della matrice, digitare:

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

    Il valore di length è impostato su -1 in quanto l'indice inizia dalla 
    posizione 0. In una matrice composta da tre elementi (1,2,3), 
    pertanto, l'indice del terzo elemento è 2, ovvero uno in meno 
    rispetto alla lunghezza della matrice.


    Per fare riferimento agli elementi di una matrice, è anche possibile 
    utilizzare costrutti di ciclo, ad esempio Foreach, For e While. Ad 
    esempio, per utilizzare un ciclo Foreach per visualizzare gli 
    elementi della matrice $a, digitare: 

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

    Il ciclo Foreach scorre la matrice e restituisce ogni valore 
    presente finché non viene raggiunta la fine della matrice.

    Il ciclo For è utile quando si incrementano i contatori mentre si 
    esaminano gli elementi di una matrice. Ad esempio, per restituire 
    un valore ogni due di una matrice utilizzando un ciclo For, digitare:

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

    È possibile utilizzare un ciclo While per visualizzare gli 
    elementi di una matrice fino a quando una condizione definita non 
    è più vera. Ad esempio, per visualizzare gli elementi della matrice $a 
    mentre l'indice della matrice è minore di 4, digitare:

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

    Per informazioni sulle proprietà e i metodi di una matrice, ad 
    esempio la proprietà Length e il metodo SetValue, utilizzare il 
    parametro InputObject del cmdlet Get-Member. Quando si reindirizza una 
    matrice a Get-Member, vengono visualizzate le informazioni sugli 
    oggetti della matrice. Quando si utilizza il parametro InputObject, 
    vengono visualizzate le informazioni sulla matrice. 

    Per trovare le proprietà e i metodi della matrice $a, digitare:

	get-member -inputobject $a


  MODIFICA DI UNA MATRICE
    È possibile modificare gli elementi di una matrice, aggiungere un 
    elemento a una matrice e combinare i valori di due matrici in una 
    terza.

    Per modificare il valore di un elemento specifico di una matrice, 
    specificare il nome della matrice e l'indice dell'elemento che si desidera 
    modificare, quindi utilizzare l'operatore di assegnazione (=) per 
    specificare un nuovo valore per l'elemento. Ad esempio, per 
    modificare il valore del secondo elemento della matrice $a, 
    (posizione di indice 1) impostandolo su 10, digitare:

        $a[1] = 10

    Per modificare un valore è anche possibile utilizzare il metodo 
    SetValue di una matrice. Nell'esempio seguente il secondo valore 
    (posizione di indice 1) della matrice $a viene impostato su 500:

        $a.SetValue(500,1)

    È possibile aggiungere un elemento a una matrice esistente utilizzando 
    l'operatore +=.
    Questo operatore consente di effettuare un'aggiunta a un valore 
    esistente. Quando l'operatore viene utilizzato su un elemento di 
    una matrice, consente di aumentare il valore dell'elemento. 
    Quando invece viene utilizzato sulla matrice stessa, consente di 
    aggiungere il valore. Ad esempio, per aggiungere un elemento con 
    un valore pari a 200 alla matrice $a, digitare:

        $a += 200

    Non è semplice eliminare gli elementi da una matrice, ma è 
    possibile creare una nuova matrice contenente solo gli elementi 
    selezionati di una matrice esistente. Ad esempio, per creare la 
    matrice $t con tutti gli elementi della matrice $a, eccetto il 
    valore nella posizione di indice 2, digitare:

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

    Per combinare due matrici in una sola, utilizzare l'operatore più (+). 
    Nell'esempio seguente vengono create due matrici, quindi tali matrici 
    vengono unite e infine viene visualizzata la matrice combinata risultante.

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

    La matrice $z conterrà pertanto i valori 1, 3, 5 e 9.

    Per eliminare una matrice, utilizzare il cmdlet Remove-Item per 
    eliminare la variabile contenente la matrice. Nel comando 
    seguente viene specificato l'elemento "a" nell'unità Variable:. 

        remove-item variable:a

    Per ulteriori informazioni sull'unità Variable: vedere l'argomento della Guida relativo
    al provider Variable.


VEDERE ANCHE
    about_Assignment_Operators
    about_Hash_Tables
    about_Operators
    about_For
    about_Foreach
    about_While




Argomenti della Guida