mhard666
Goto Top

PowerShell verschachtelte Hashtable zerlegen

Hallo allerseits,

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.

Content-Key: 1353059499

Url: https://administrator.de/contentid/1353059499

Printed on: April 28, 2024 at 15:04 o'clock

Mitglied: 7907292512
Solution 7907292512 Aug 24, 2023 updated at 14:38:51 (UTC)
Goto Top
Einfach
$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
}
Gruß siddius
Member: mhard666
mhard666 Aug 25, 2023 at 09:07:18 (UTC)
Goto Top
Moin,

Danke, passt. Genau das was ich gesucht habe - auch das direkte Iterieren der Hashtable.

VG mhard666.