Search code examples
powershellhashtable

PowerShell Hashtable show first key


I am playing around with hashtables in powershell and try to figure out, if there is a way, to show the content of Key1 (not the value).

I tried several ways to have as an result "Monday" but either I get all the names of the table, a blank return or an error message.

here's my table:

$Weekdays = @{Monday = 'Montag';Tuesday = 'Dienstag'}

If possible, I would like to have as an output only "Monday", is there a way, I can enter code to have "Monday" as an output?

Thank you very much for your help,

Mike


Solution

  • You can access the Key/ValueCollection inside the hashtable:

    $Weekdays = @{Monday = 'Montag';Tuesday = 'Dienstag'}    
    echo $($Weekdays.Keys)[0]
    echo $($Weekdays.Values)[1]
    

    will return

    Monday
    Dienstag
    

    enclosing the call to "Keys" in $() will result in the Collection being converted to an Object Array, as you ca see here:

    $Weekdays = @{Monday = 'Montag';Tuesday = 'Dienstag'}
    $Weekdays.Keys.Gettype()
    $($Weekdays.Keys).Gettype()
    

    which gives

    IsPublic IsSerial Name                                     BaseType                                                                                                                     
    -------- -------- ----                                     --------                                                                                                                     
    False    True     KeyCollection                            System.Object                                                                                                                
    True     True     Object[]                                 System.Array  
    

    and an object array can be indexed into with integers.