PowerShell verschachtelte Hashtable zerlegen
Hallo allerseits,
ich habe hier eine verschachtelte Hashtable. Diese muss ich zerlegen und die einzelnen Hashtables in eine Liste packen.
Die Hashtable soll in eine Liste/Array konvertiert werden, so dass die Unter-Hashtables (erster, zweiter, dritter, usw) als Elemente in dem Array gespeichert werden.
Rauskommen muss soetwas wie:
Ich bekomme es irgendwie nicht gebacken. Am Ende sind die Elemente in der Liste nicht vom Typ Hashtable, sondern DictionaryEntry. Damit kann ich allerdings gerade nicht wie gewünscht arbeiten.
Hat wer eine Idee, wie ich das bewerkstelligen kann?
Danke.
VG mhard666.
ich habe hier eine verschachtelte Hashtable. Diese muss ich zerlegen und die einzelnen Hashtables in eine Liste packen.
$h = @{
Erster = @{wert = "erster"; name = "heinz"};
Zweiter = @{wert = "zweiter"; name = "willi"};
Dritter = @{wert = "dritter"; name = "moni"};
Usw = @{wert = "usw"; name = "ernst"}
}
Die Hashtable soll in eine Liste/Array konvertiert werden, so dass die Unter-Hashtables (erster, zweiter, dritter, usw) als Elemente in dem Array gespeichert werden.
Rauskommen muss soetwas wie:
$l = @(
@{wert = "erster"; name = "heinz"};
@{wert = "zweiter"; name = "willi"};
@{wert = "dritter"; name = "moni"};
@{wert = "usw"; name = "ernst"}
)
Ich bekomme es irgendwie nicht gebacken. Am Ende sind die Elemente in der Liste nicht vom Typ Hashtable, sondern DictionaryEntry. Damit kann ich allerdings gerade nicht wie gewünscht arbeiten.
Hat wer eine Idee, wie ich das bewerkstelligen kann?
Danke.
VG mhard666.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1353059499
Url: https://administrator.de/contentid/1353059499
Ausgedruckt am: 21.11.2024 um 19:11 Uhr
2 Kommentare
Neuester Kommentar
Einfach
Das umwandeln kann man sich aber in der Regel auch sparen. Eine Hashtable kannst du auch so direkt itterieren
Gruß siddius
$h = [ordered]@{
Erster = @{wert = "erster"; name = "heinz"}
Zweiter = @{wert = "zweiter"; name = "willi"}
Dritter = @{wert = "dritter"; name = "moni"}
Usw = @{wert = "usw"; name = "ernst"}
}
# ... umwandeln
[hashtable[]]$array = $h.Values
# ... einige Elemente ausgeben
$array[0].name
$array[1].name
Das umwandeln kann man sich aber in der Regel auch sparen. Eine Hashtable kannst du auch so direkt itterieren
$h.GetEnumerator() | %{
$_.Value
}