Ordered Hash Tables and Changing Order

by Dec 27, 2013

Ordered hash tables are new in PowerShell 3.0 and great for creating new objects. Unlike regular hash tables, ordered hash tables keep the order in which you add keys, so you can control in which order these keys turn into object properties. Here is a sample:

$hashtable = [Ordered]@{}
$hashtable.Name = 'Tobias'
$hashtable.ID = 12
$hashtable.Location = 'Germany'


New-Object -TypeName PSObject -Property $hashtable 

This produces an object with the properties defined in the exact order how they were specified.

What if you wanted to add another property not at the end, but let's say at the beginning of the list? Try Insert():

$hashtable = [Ordered]@{}
$hashtable.Name = 'Tobias'
$hashtable.ID = 12
$hashtable.Location = 'Germany'
$hashtable.Insert(0, 'Position', 'CSA')

New-Object -TypeName PSObject -Property $hashtable 

Twitter This Tip! ReTweet this Tip!