21. März 2019

Hashtables

Hashtables nutze ich in der Tat recht selten. Sie ermöglichen es 1 zu 1 Beziehungen in eine Variable zu schreiben. Im Endeffekt fühlt es sich dann an wie die Attribute die bereits oben beschrieben sind.

Ein Hashtable wird wie folgt erstellt:

$hashtable = @{}

Um einen Hashtable zu füllen, braucht man den .Add Operation:

$hashtable.Add("FirstName","Barack")

Der Aufruf der einzelnen Werte erfolgt dadurch, dass man den Namen des Attributs mit Punkt auruft:

$hashtable.Firstname

Wo ist aber dann der Unterschied zu den Attributen einer Variablen… Beides sind Objeke, aber der Hashtable ist praktisch ein Karton in dem Informationen drin sind. Die „normale Variable“ ist einfach nur eine Stück Papier auf dem was draufgeschrieben ist. Das Zeigt sich wie folgt, nämlich wenn wir ein Array bauen, die praktisch eine Tabelle werden soll. Z.B für einen CSV-, Datenbank-Export, etc.

Bauen wir uns noch einen zweiten Hashtable:

$hashtable2 = @{}
$hashtable2.Add("FirstName","Michelle")
$hashtable2.Add("LastName","Obama")
$hashtable2.Add("DateOfBirth",(Get-Date -Year 1964 -Month 01 -Day 17))
$hashtable2

Jetzt ein neues Array als „Tabelle“ und fügen da mal die beiden Hashtables ein:

$table = @()
$table += $hashtable
$table += $hashtable2
$table

Nicht so praktisch… für diesen Anwendungsfall zumindest.

Im Vergleich hierzu nochmal das Array mit den Variablen mit Attributen:

(Wundert euch nicht über die Uhrzeiten, ich habe die Screenshots an unterschiedlichen Tagen und Zeiten erstellt)