PowerShell Hash Tables Double Key Error: "a" and "A"
hashtable, powershell
Solution
By default PowerShell Hash tables are case sensitive. Try this
$h = new-object System.Collections.Hashtable
$h['a'] = "Entry for a"
$h['A'] = "S.th.else for A"
$h[0] = "Entry for 0"
$h[1] = "Entry for 1"
$h
Output for $h: (it will treat `a` and `A` differently)
Name Value
---- -----
A S.th.else for A
a Entry for a
1 Entry for 1
0 Entry for 0
Or this (depending on the syntax that you prefer)
$hash = New-Object system.collections.hashtable
$hash.a = "Entry for a"
$hash.A = "S.th.else for A"
$hash.0 = "Entry for 0"
$hash.1 = "Entry for 1"
$hash.KEY
$hash
But, if you create hashtable with `@{}` syntax. It is case insensitive
$x = @{}
$x['a'] = "Entry for a"
$x['A'] = "S.th.else for A"
$x[0] = "Entry for 0"
$x[1] = "Entry for 1"
$x
Output for $x: (it will treat `a` and `A` as same)
Name Value
---- -----
a S.th.else for A
1 Entry for 1
0 Entry for 0
Note: Both `$h.GetType()` and `$x.GetType()` are of `System.Object.Hashtable`
Problem
from another application I have key-value pairs which I want to use in my script. But there they have e.g. the keys "a" and "A" - which causes an Error double keys aren't allowed. ``` $x = @{ "a" = "Entry for a"; "A" = "S.th.else for A" } ``` What can I do as I would need both or none? Thanks in advance, Gooly