Sei sulla pagina 1di 5

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

Potrebbero piacerti anche