Come ordinare i valori di un array usando PowerShell

  1. Ordina i Valori degli Array in PowerShell Utilizzando il Cmdlet Sort-Object
  2. Ordina i Valori degli Array in PowerShell Utilizzando il Metodo [Array]::Sort()
  3. Conclusione
Come ordinare i valori di un array usando PowerShell

Ordinare gli array è un compito comune ed essenziale nella scrittura di script PowerShell, consentendo un’ organizzazione e manipolazione efficiente dei dati. Che si tratti di array numerici, stringhe o oggetti personalizzati, PowerShell offre strumenti versatili per l’ordinamento.

In questo articolo completo, esploreremo diversi metodi e tecniche per ordinare i valori degli array, per soddisfare vari scenari e preferenze.

Ordina i Valori degli Array in PowerShell Utilizzando il Cmdlet Sort-Object

Il cmdlet Sort-Object fornisce un modo conveniente e versatile per disporre i valori degli array in ordine crescente o decrescente in base a vari criteri. Non è limitato agli array e può essere utilizzato con qualsiasi collezione di oggetti.

Quando si tratta di ordinare gli array, ogni elemento nell’array è considerato un oggetto e il cmdlet Sort-Object viene applicato di conseguenza.

La sintassi di base del cmdlet Sort-Object è la seguente:

<array> | Sort-Object [-Property <property>] [-Descending] [-Culture <culture>] [-Unique]

Dove:

  • <array>: Rappresenta l’array che si desidera ordinare.
  • -Property: Specifica la proprietà sulla base della quale deve essere eseguito l’ordinamento. Se non fornita, PowerShell usa le proprietà di ordinamento predefinite del primo oggetto di input.
  • -Descending: Ordina gli oggetti in ordine decrescente. Se questo parametro non viene utilizzato, l’ordinamento avviene in ordine crescente.
  • -Culture: Specifica la cultura da utilizzare per l’ordinamento. Questo è facoltativo e predefinito alla cultura attuale.
  • -Unique: Garantisce che l’elenco ordinato contenga elementi unici.

Scopriamo esempi pratici per comprendere come utilizzare il cmdlet Sort-Object per ordinare i valori degli array.

Esempio 1: Ordinamento in Ordine Crescente

$numbers = 4, 2, 7, 1, 5
$sortedNumbers = $numbers | Sort-Object
$sortedNumbers

Qui abbiamo un array di numeri memorizzati nella variabile $numbers. Inviando questo array al Sort-Object, ordiniamo i numeri in ordine crescente.

L’array ordinato è memorizzato in $sortedNumbers.

Output:

1
2
4
5
7

Esempio 2: Ordinamento in Ordine Decrescente

$cities = "New York", "London", "Paris", "Tokyo", "Sydney"
$sortedCitiesDescending = $cities | Sort-Object -Descending
$sortedCitiesDescending

In questo esempio, l’array $cities contiene nomi di città. Usiamo il parametro -Descending per ordinarli in ordine decrescente, e il risultato è memorizzato in $sortedCitiesDescending.

Output:

Tokyo
Sydney
Paris
New York
London

Esempio 3: Ordinamento di Oggetti Basato su Proprietà

$people = @( [PSCustomObject]@{ Name = "Alice"; Age = 25 },
    [PSCustomObject]@{ Name = "Bob"; Age = 30 },
    [PSCustomObject]@{ Name = "Charlie"; Age = 22 } )
$sortedPeople = $people | Sort-Object Age
$sortedPeople

In questo esempio, abbiamo un array di oggetti personalizzati che rappresentano persone con proprietà Name e Age. Usiamo Sort-Object con il parametro -Property per ordinare l’array in base alla proprietà Age.

Output:

Name    Age
----    ---
Charlie  22
Alice    25
Bob      30

Questi esempi mostrano la flessibilità e la potenza del cmdlet Sort-Object nell’ordinare i valori degli array in PowerShell. Che si stia lavorando con array semplici o array di oggetti complessi, Sort-Object fornisce una soluzione semplice ed efficace.

Ordina i Valori degli Array in PowerShell Utilizzando il Metodo [Array]::Sort()

Sebbene il cmdlet Sort-Object sia uno strumento potente per ordinare gli array, PowerShell offre anche il metodo [Array]::Sort(), un membro della classe [Array] in .NET. Questo metodo è specificamente progettato per ordinare gli array. Modifica direttamente l’ordine degli elementi nell’array originale, rendendolo un algoritmo di ordinamento in loco.

La sintassi per utilizzare il metodo [Array]::Sort() è la seguente:

[Array]::Sort(<array>)
  • <array>: Rappresenta l’array che si desidera ordinare.

Vediamo alcuni esempi per comprendere come utilizzare il metodo [Array]::Sort() per ordinare i valori degli array.

Esempio 1: Ordinamento in Ordine Crescente

Per ordinare un array in ordine crescente utilizzando il metodo [Array]::Sort(), possiamo invocare il metodo e passare l’array come argomento:

$numbers = 4, 2, 7, 1, 5
[Array]::Sort($numbers)
$numbers

In questo esempio, l’array $numbers contiene valori numerici. Usiamo il metodo [Array]::Sort() per ordinare direttamente l’array in ordine crescente. L’ordinamento avviene in loco, il che significa che l’array originale viene modificato.

Output:

1
2
4
5
7

Esempio 2: Ordinamento di Stringhe in Ordine Crescente

$fruits = "Apple", "Orange", "Banana", "Grapes"
[Array]::Sort($fruits)
$fruits

Qui, l’array $fruits contiene valori stringa che rappresentano frutti. Il metodo [Array]::Sort() viene applicato per ordinare l’array alfabeticamente in ordine crescente. L’array originale viene modificato in loco.

Output:

Apple
Banana
Grapes
Orange

Esempio 3: Ordinamento in Ordine Decrescente

$ages = 35, 22, 28, 40, 30
[Array]::Sort($ages)
$ages = $ages -join ", "
$ages

In questo esempio, l’array $ages è composto da valori numerici. Applichiamo [Array]::Sort() per ordinare l’array in ordine crescente e poi usiamo -join per unire i valori ordinati in una stringa per una migliore leggibilità.

Output:

22, 28, 30, 35, 40

Il metodo [Array]::Sort() è un modo conveniente per ordinare gli array in loco. È particolarmente utile quando si desidera modificare direttamente l’array originale.

Tuttavia, è essenziale notare che questo metodo non è adatto per ordinare array di oggetti complessi o tipi personalizzati, dove Sort-Object sarebbe una scelta più appropriata.

Conclusione

In questo articolo, abbiamo scoperto due metodi fondamentali: il versatile cmdlet Sort-Object e il diretto metodo [Array]::Sort(). Ogni metodo offre i suoi vantaggi unici, caterando a diversi scenari e preferenze nella scrittura di script PowerShell.

Il cmdlet Sort-Object si distingue quando si trattano array di oggetti personalizzati o tipi di dati diversificati con la sua sintassi flessibile e la capacità di ordinare oggetti in base a proprietà. La sua integrazione fluida nelle pipeline lo rende uno strumento potente per la manipolazione degli array, fornendo sia capacità di ordinamento crescente che decrescente.

D’altra parte, il metodo [Array]::Sort() brilla per semplicità ed efficienza, modificando direttamente l’array originale in loco. È ideale per scenari in cui si prioritizza la modifica dell’array esistente senza creare variabili aggiuntive.

Tuttavia, è cruciale riconoscere la sua idoneità principalmente per ordinare semplici array di tipi di dati primitivi.

In ultima analisi, se optare per il cmdlet Sort-Object o il metodo [Array]::Sort() dipende dalle specifiche esigenze del tuo script PowerShell.

Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Articolo correlato - PowerShell Array