Ein grosser Vorteil von Array-Listen gegenüber von Arrays ist, dass man Werte an spezifischen Positionen hinzufügen und entfernen kann. Array-Listen sind standardmässig nicht schreibgeschützt.
So erstellt man eine Array-Liste:
[System.Collections.ArrayList]$arrayList = @()
Einer Array-Liste Werte hinzufügen:
# Einen Wert hinzugefügen:
$arrayList.Add(1)
# Einen String hinzufügen:
$arrayList.Add("helloworld")
# Mehrere Werte hinzufügen:
$arrayList.Add((2, 3, 4, 5))
# Man kann auch mehrere Werte mithilfe einer anderer Array-Liste oder einem Array hinzufügen:
$array = @(2,3,4,5)
$arrayList.Add($array)
Einen Wert an einer spezifischen Position hinzufügen:
# Hier wird an der Indexposition 5 der Wert 6 hinzugefügt
$arrayList.Insert(5,6)
Überprüfen, ob ein definierter Wert in der Liste vorhanden ist:
# WICHTIG: Der Output dieses Befehls ist ein Boolean
$arrayList.Contains("3")
Einen definierten Wert aus der Array-Liste entfernen:
# WICHTIG: Falls die Liste den Wert 3 mehrfach enthält, wird lediglich der erste Wert in der Liste entfernt
$arrayList.Remove(3)
Einen definierten Wert komplett aus der Liste löschen:
# Array-Liste erstellt
[System.Collections.ArrayList]$arrayList = @(1,2,3,3,3,4,3,5)
# Nummer, welche entfernt werden soll definieren (geht auch mit Strings)
$numberToRemove = 3
# Der zu entfernende Wert wird solange entfernt, bis er nicht mehr vorhanden ist
do{
$arrayList.Remove($numberToRemove)
}until($arrayList.Contains($numberToRemove) -eq $false)
Einen beliebigen Wert an einer definierten Indexposition entfernen:
# Der Wert an Indexposition 5 wird entfernt
$arrayList.RemoveAt(5)
Weitere nützliche Infos:
# Indexposition 4 anzeigen
$arrayList[4]
# Indexposition eines Wertes anzeigen
[System.Collections.ArrayList]$arrayList = @(1,2,3,4,5)
$arrayList.IndexOf(4)
# Listengrösse anzeigen
$arrayList.Count
# Eigenschaft einer Array-Liste abrufen (Boolean Output)
$arrayList.IsReadOnly
$arrayList.IsFixedSize
$arrayList.IsSynchronized
# Schreibschutz hinzufügen
$arrayListReadOnly = [System.Collections.ArrayList]::ReadOnly($$arrayListReadOnly)
# Maximale Grösse definieren
$arrayListFixed = [System.Collections.ArrayList]::FixedSize($$arrayListFixed)
# Synchronisierte Array-Liste erstellen
$arrayListSynched = [System.Collections.ArrayList]::Synchronized($arrayList)
# Liste umkehren
$arrayList.Reverse()