Wie man Array-Werte mit PowerShell sortiert
-
Arraywerte in PowerShell mit dem Cmdlet
Sort-Object
sortieren -
Arraywerte in PowerShell mit der Methode
[Array]::Sort()
sortieren - Fazit

Das Sortieren von Arrays ist eine gängige und wesentliche Aufgabe in PowerShell-Skripting, die eine effiziente Datenorganisation und -manipulation ermöglicht. Egal, ob es sich um numerische, String- oder benutzerdefinierte Objekt-Arrays handelt, PowerShell bietet vielseitige Werkzeuge zum Sortieren.
In diesem umfassenden Artikel werden wir verschiedene Methoden und Techniken zum Sortieren von Arraywerten erkunden, die auf verschiedene Szenarien und Vorlieben abgestimmt sind.
Arraywerte in PowerShell mit dem Cmdlet Sort-Object
sortieren
Das Cmdlet Sort-Object
bietet eine bequeme und vielseitige Möglichkeit, Arraywerte in aufsteigender oder absteigender Reihenfolge basierend auf verschiedenen Kriterien anzuordnen. Es ist nicht auf Arrays beschränkt und kann mit jeder Sammlung von Objekten verwendet werden.
Beim Sortieren von Arrays wird jedes Element im Array als Objekt betrachtet, und das Cmdlet Sort-Object
wird entsprechend angewendet.
Die grundlegende Syntax des Cmdlets Sort-Object
ist wie folgt:
<array> | Sort-Object [-Property <property>] [-Descending] [-Culture <culture>] [-Unique]
Wobei:
<array>
: Das Array darstellt, das sortiert werden soll.-Property
: Die Eigenschaft angibt, basierend auf der die Sortierung durchgeführt werden soll. Wenn nicht angegeben, verwendet PowerShell die standardmäßigen Sortiereigenschaften des ersten Eingabeobjekts.-Descending
: Sortiert die Objekte in absteigender Reihenfolge. Wenn dieser Parameter nicht verwendet wird, erfolgt die Sortierung in aufsteigender Reihenfolge.-Culture
: Die Kultur angibt, die für die Sortierung verwendet werden soll. Dies ist optional und standardmäßig auf die aktuelle Kultur eingestellt.-Unique
: Stellt sicher, dass die sortierte Liste eindeutige Elemente enthält.
Lassen Sie uns in praktische Beispiele eintauchen, um zu verstehen, wie man das Cmdlet Sort-Object
zum Sortieren von Arraywerten verwendet.
Beispiel 1: Sortieren in aufsteigender Reihenfolge
$numbers = 4, 2, 7, 1, 5
$sortedNumbers = $numbers | Sort-Object
$sortedNumbers
Hier haben wir ein Array von Zahlen, das in der Variablen $numbers
gespeichert ist. Durch das Pipen dieses Arrays zum Sort-Object
sortieren wir die Zahlen in aufsteigender Reihenfolge.
Das sortierte Array wird in $sortedNumbers
gespeichert.
Ausgabe:
1
2
4
5
7
Beispiel 2: Sortieren in absteigender Reihenfolge
$cities = "New York", "London", "Paris", "Tokyo", "Sydney"
$sortedCitiesDescending = $cities | Sort-Object -Descending
$sortedCitiesDescending
In diesem Beispiel enthält das Array $cities
Städtenamen. Wir verwenden den Parameter -Descending
, um sie in absteigender Reihenfolge zu sortieren, und das Ergebnis wird in $sortedCitiesDescending
gespeichert.
Ausgabe:
Tokyo
Sydney
Paris
New York
London
Beispiel 3: Sortieren von Objekten basierend auf einer Eigenschaft
$people = @( [PSCustomObject]@{ Name = "Alice"; Age = 25 },
[PSCustomObject]@{ Name = "Bob"; Age = 30 },
[PSCustomObject]@{ Name = "Charlie"; Age = 22 } )
$sortedPeople = $people | Sort-Object Age
$sortedPeople
In diesem Beispiel haben wir ein Array von benutzerdefinierten Objekten, die Personen mit den Eigenschaften Name
und Age
darstellen. Wir verwenden Sort-Object
mit dem Parameter -Property
, um das Array basierend auf der Eigenschaft Age
zu sortieren.
Ausgabe:
Name Age
---- ---
Charlie 22
Alice 25
Bob 30
Diese Beispiele zeigen die Flexibilität und Leistungsfähigkeit des Cmdlets Sort-Object
beim Sortieren von Arraywerten in PowerShell. Egal, ob Sie mit einfachen Arrays oder Arrays komplexer Objekte arbeiten, Sort-Object
bietet eine unkomplizierte und effektive Lösung.
Arraywerte in PowerShell mit der Methode [Array]::Sort()
sortieren
Während das Cmdlet Sort-Object
ein mächtiges Werkzeug zum Sortieren von Arrays ist, bietet PowerShell auch die Methode [Array]::Sort()
, ein Mitglied der Klasse [Array]
in .NET. Diese Methode wurde speziell für das Sortieren von Arrays entwickelt. Sie ändert die Reihenfolge der Elemente im ursprünglichen Array direkt und stellt einen Sortieralgorithmus in place dar.
Die Syntax zur Verwendung der Methode [Array]::Sort()
ist wie folgt:
[Array]::Sort(<array>)
<array>
: Das Array darstellt, das sortiert werden soll.
Lassen Sie uns einige Beispiele ansehen, um zu verstehen, wie man die Methode [Array]::Sort()
zum Sortieren von Arraywerten nutzen kann.
Beispiel 1: Sortieren in aufsteigender Reihenfolge
Um ein Array in aufsteigender Reihenfolge mithilfe der Methode [Array]::Sort()
zu sortieren, können wir die Methode aufrufen und das Array als Argument übergeben:
$numbers = 4, 2, 7, 1, 5
[Array]::Sort($numbers)
$numbers
In diesem Beispiel enthält das Array $numbers
numerische Werte. Wir verwenden die Methode [Array]::Sort()
, um das Array in aufsteigender Reihenfolge direkt zu sortieren. Die Sortierung erfolgt in place, was bedeutet, dass das ursprüngliche Array geändert wird.
Ausgabe:
1
2
4
5
7
Beispiel 2: Sortieren von Strings in aufsteigender Reihenfolge
$fruits = "Apple", "Orange", "Banana", "Grapes"
[Array]::Sort($fruits)
$fruits
Hier enthält das Array $fruits
Stringwerte, die Früchte darstellen. Die Methode [Array]::Sort()
wird angewendet, um das Array alphabetisch in aufsteigender Reihenfolge zu sortieren. Das ursprüngliche Array wird in place geändert.
Ausgabe:
Apple
Banana
Grapes
Orange
Beispiel 3: Sortieren in absteigender Reihenfolge
$ages = 35, 22, 28, 40, 30
[Array]::Sort($ages)
$ages = $ages -join ", "
$ages
In diesem Beispiel besteht das Array $ages
aus numerischen Werten. Wir wenden [Array]::Sort()
an, um das Array in aufsteigender Reihenfolge zu sortieren, und verwenden dann -join
, um die sortierten Werte in einen String zu verketten, um die Lesbarkeit zu verbessern.
Ausgabe:
22, 28, 30, 35, 40
Die Methode [Array]::Sort()
ist ein praktischer Weg, um Arrays in place zu sortieren. Sie ist besonders nützlich, wenn Sie das ursprüngliche Array direkt ändern möchten.
Es ist jedoch wichtig zu beachten, dass diese Methode nicht zum Sortieren von Arrays komplexer Objekte oder benutzerdefinierter Typen geeignet ist, bei denen Sort-Object
die geeignetere Wahl wäre.
Fazit
In diesem Artikel haben wir zwei grundlegende Methoden aufgedeckt: das vielseitige Cmdlet Sort-Object
und die unkomplizierte Methode [Array]::Sort()
. Jede Methode bietet ihre eigenen einzigartigen Vorteile und ist auf unterschiedliche Szenarien und Vorlieben im PowerShell-Skripting zugeschnitten.
Das Cmdlet Sort-Object
sticht hervor, wenn es um Arrays von benutzerdefinierten Objekten oder unterschiedlichen Datentypen geht, mit seiner flexiblen Syntax und der Fähigkeit, Objekte basierend auf Eigenschaften zu sortieren. Seine nahtlose Integration in Pipelines macht es zu einem leistungsstarken Werkzeug zur Array-Manipulation, das sowohl aufsteigende als auch absteigende Sortiermöglichkeiten bietet.
Andererseits glänzt die Methode [Array]::Sort()
in Einfachheit und Effizienz, da sie das ursprüngliche Array direkt in place ändert. Sie ist ideal für Szenarien, in denen Sie die vorhandene Array ohne die Erstellung zusätzlicher Variablen ändern möchten.
Dennoch ist es entscheidend, ihre Eignung hauptsächlich für das Sortieren einfacher Arrays von primitiven Datentypen zu erkennen.
Letztendlich hängt es davon ab, ob Sie das Cmdlet Sort-Object
oder die Methode [Array]::Sort()
wählen, von den spezifischen Anforderungen Ihres PowerShell-Skripts ab.
Verwandter Artikel - PowerShell Array
- PowerShell mehrdimensionale Arrays
- Wie man doppelte Werte aus einem PowerShell-Array entfernt
- Wie man Objekte zu einem Array von Objekten in PowerShell hinzufügt
- Wie man CSV-Dateien in ein Array in PowerShell importiert
- Wie man ein Array an eine Funktion in PowerShell übergibt
- Array von Zeichenfolgen in PowerShell