Element aus einem Array in PowerShell entfernen
Ein PowerShell-Array hat eine feste Größe und kann nicht geändert werden. Das bedeutet, dass Sie keine Elemente in einem Array hinzufügen oder entfernen können.
Die beste Alternative ist die Verwendung einer ArrayList
anstelle eines Arrays. Eine ArrayList
hat nicht die Länge fester Grösse und kann modifiziert werden.
Dieser Artikel lehrt das Erstellen einer ArrayList
und das Entfernen von Elementen daraus in PowerShell.
Verwenden Sie die Remove()
-Methode, um ein Element aus einer ArrayList
in PowerShell zu entfernen
Das folgende Beispiel erstellt eine ArrayList
$days
mit den Elementen Sonntag
, Montag
und Dienstag
.
[System.Collections.ArrayList]$days = "Sunday", "Monday", "Tuesday"
Mit der Methode Get-Type()
können Sie sich den aktuellen Datentyp einer Variablen anzeigen lassen.
$days.GetType()
Ausgang:
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True ArrayList System.Object
Die Ausgabe zeigt, dass wir erfolgreich eine ArrayList
erstellt haben. Sie können überprüfen, ob es sich um eine feste Größe handelt oder nicht, indem Sie den folgenden Befehl ausführen.
$days.IsFixedSize
Ausgang:
False
Es hat False
zurückgegeben, was bedeutet, dass es keine feste Größe hat.
Nun fügen wir ein neues Element, Wednesday
, zur ArrayList
$days
hinzu. Die Methode Add()
fügt am Ende der ArrayList
ein neues Element hinzu.
$days.Add("Wednesday")
Es druckt die Indexnummer, bei der ein neues Element hinzugefügt wird.
3
Führen Sie Folgendes aus, um das hinzugefügte Element in der ArrayList
zu überprüfen.
$days
Ausgang:
Sunday
Monday
Tuesday
Wednesday
Wie Sie sehen können, wurde Wednesday
erfolgreich zur ArrayList
$days
hinzugefügt.
Um ein Element aus der ArrayList
zu entfernen, können Sie die Methode Remove()
verwenden.
$days.Remove("Monday")
$days
Ausgang:
Sunday
Tuesday
Wednesday
Die Methode Remove()
entfernt das erste Vorkommen des angegebenen Elements aus der ArrayList
.
Sie können auch ein bestimmtes Element entfernen, indem Sie die Indexnummer verwenden. Die Methode RemoveAt()
ermöglicht das Entfernen eines Elements am angegebenen Index aus der ArrayList
.
Das folgende Beispiel entfernt das Element mit der Indexnummer 2
aus der ArrayList
$days
.
$days.RemoveAt(2)
$days
Ausgang:
Sunday
Tuesday
Manchmal müssen Sie möglicherweise mehrere Elemente aus einem bestimmten Bereich entfernen, z. B. 1-10, 5-9, 12-22 usw. In solchen Fällen können Sie die Methode RemoveAt()
verwenden, um eine Reihe von Elementen zu entfernen die ArrayList
.
Dieser Befehl erstellt eine neue ArrayList
$months
.
[System.Collections.ArrayList]$months = "Jan", "Feb", "Mar", "Apr", "May", "Jun", "July", "Aug", "Sep", "Oct", "Nov", "Dec"
Das folgende Beispiel entfernt Elemente im Indexnummernbereich 6-11
aus der ArrayList
$months
.
$months.RemoveRange(6,5)
Überprüfen Sie, ob diese Elemente aus der ArrayList
entfernt wurden.
$months
Ausgang:
Jan
Feb
Mar
Apr
May
Jun
Dec
Wenn Sie mit den Parametern verwirrt sind, wird die folgende Syntax verwendet.
RemoveRange(index, count)
index
- Anfangsindex des Bereichs der zu entfernenden Elemente.count
- Anzahl der Gegenstände, die aus dem Startbereich entfernt werden sollen.