Mase_ 0 Geschrieben 15. Dezember 2021 Melden Teilen Geschrieben 15. Dezember 2021 Guten Abend zusammen, kleine Skizze meiner Gedankengänge: #Arrayvariable für die keys $keys=@() for($i=0; $i -lt 10; $i++) {$keys+='Name'+$i} #Arrayvariable für die values $values=@() for($i=0; $i -lt 10; $i++) {$values+=$i} #Objektvariable Hashtable $ht=@{} $ht=@{$keys=$values} Meine Frage: Ich würde 10Zeilen und 2Spalten erwarten. Dem ist leider nicht so - aber warum? Schöne Grüße von der schwäbischen Alb, Marco Zitieren Link zu diesem Kommentar
Beste Lösung cj_berlin 1.315 Geschrieben 15. Dezember 2021 Beste Lösung Melden Teilen Geschrieben 15. Dezember 2021 vor 32 Minuten schrieb Mase_: Ich würde 10Zeilen und 2Spalten erwarten. Dem ist leider nicht so - aber warum? Naja, zwei Spalten hast Du schon, die hat eine Hashtable immer Der Konstruktor einer Hashtable ist keine Zuweisung, daher kann man hier kein Array von Values zu einem Array von Keys gleicher Länge zuweisen. Siehe auch hier: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_hash_tables?view=powershell-7.2 Zitieren Link zu diesem Kommentar
Mase_ 0 Geschrieben 15. Dezember 2021 Autor Melden Teilen Geschrieben 15. Dezember 2021 @cj_berlin: Danke für Dein Input. Zitat Naja, zwei Spalten hast Du schon Zauberei, nicht wahr? ;) Zitat Der Konstruktor [...] keine Zuweisung... Ewig schade. Bleibt also eine Lösung via loop. Beispielhaft: #Arrayvariable für die keys $keys=@() for($i=0; $i -lt 10; $i++) {$keys+='Name'+$i} #Arrayvariable für die values $values=@() for($i=0; $i -lt 10; $i++) {$values+=$i} #Objektvariable Hashtable $ht=[ordered]@{} for($i=0;$i -lt 10;$i++) { $ht[$keys[$i]] = $values[$i] } Später noch (zur Wiederverwendbarkeit) neutral formuliert in eine Funktion ausgelagert. Besten Dank. gruß Marco Zitieren Link zu diesem Kommentar
cj_berlin 1.315 Geschrieben 15. Dezember 2021 Melden Teilen Geschrieben 15. Dezember 2021 Achtung! Ein Ordered Dictionary ist keine Hashtable. Hier ein paar Unterschiede: OD hat keine der Methoden ContainsKey(), ContainsValue() und Clone(). Und obgleich OD keine Methode Clone() hat, ist das Zuweisungsverhalten so, dass man sie gelegentlich bräuchte. Dafür hat OD die Methoden Insert() und RemoveAt(), die für HT keinen Sinn ergeben. Zitieren Link zu diesem Kommentar
Mase_ 0 Geschrieben 15. Dezember 2021 Autor Melden Teilen Geschrieben 15. Dezember 2021 Hm, gut zu wissen, denn das wollte ich so nicht. Danke für den Hinweis und Deine Aufmerksamkeit. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.