我试图让用户进行选择,然后根据该选择从哈希表中返回一个值。
我的哈希表看起来像这样:
$choices = @{ 0 = "SelectionA";
1 = "SelectionB";
99 = "SelectionC"}
我的选择如下:
$selection = Read-Host -Prompt "
Please make a selection
0 - Selection A
1 - Selection B
99 - Selection C "
然后我试图根据这样的选择带回价值:
$choices.$selection
或
$choices.{$selection}
这不起作用。是否可以使用变量作为键来调用哈希表值?
感谢您提供的任何帮助!
答案 0 :(得分:2)
您可以使用Get_Item方法。
$myChoice = $choices.Get_Item($selection)
您可能必须先将$ selection变量转换为整数,因为我相信它会以字符串形式出现。
有关哈希表的更多信息:https://technet.microsoft.com/en-us/library/ee692803.aspx
答案 1 :(得分:0)
以上评论都是正确答案。我将它们添加为答案以解决问题。
按PetSerAl:
$choices.[int]$selection
$choices = @{ '0' = 'SelectionA'}
这是PowerShell的自动类型转换盲点之一。哈希表中的键是整数,但Read-Host返回字符串。
答案 2 :(得分:0)
$ha=@{0='aa';1='bb'}
$sel=0
$ha.$sel // 'aa'