giovedì 12 dicembre 2024

POWERSHELL - Utilizzo delle ArrayList

 Gli array in powershell hanno un grosso "problema", se devono essere utilizzati per delle elaborazioni: una volta definiti, hanno una dimensione fissa.

$array = @('1', '2')

E' possibile aggiungere elementi, ma il sistema in realtà crea un "nuovo array" e ci carica dentro tutti gli elementi del primo e quelli nuovi che si intende aggiungere.
Questo è decisamente dispendioso in termini di tempo e di risorse.

Se invece si vuole lavorare con una struttura più "dinamica", bisogna utilizzare i System.Collections.ArrayList.

L'ArrayList viene definito in questo modo:

$array = new-object System.Collections.ArrayList
E' possibile accedere ai suoi elementi utilizzando la solita convenzione per gli array (indicando l'index tra parentesi quadre):
for ($i = 0; $i -lt $array.Count; $i++)
{
    $el = $array[$i]
    [...]
}
E' possibile inoltre aggiungere degli elementi senza rigenerare l'array:
$array.Add("dato") | Out-Null
Nota: in questo caso, i richiami ad "Add" (o "Remove") restituiscono in output il numero di righe processate, quindi è necessario passare l'output a "null" (come nell'esempio qui sopra).

E' possibile inoltre trasformare l'array in una stringa singola usando un separatore:
$msg = $array -join " "
E' possibile contare gli elementi al suo interno:
$count = $array.Count
Da notare che l'associazione di un'ArrayList ad un'altra variabile avviene "per riferimento" e non "per valore", per cui un eventuale richiamo a .Clear() elimina i dati da entrambi! (che poi... è lo stesso elemento).

Nessun commento:

Posta un commento