使用变量键

时间:2016-04-05 20:30:01

标签: powershell variables key hashtable

我试图让用户进行选择,然后根据该选择从哈希表中返回一个值。

我的哈希表看起来像这样:

$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}

这不起作用。是否可以使用变量作为键来调用哈希表值?

感谢您提供的任何帮助!

3 个答案:

答案 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

beatcracker

$choices = @{ '0' = 'SelectionA'}
  

这是PowerShell的自动类型转换盲点之一。哈希表中的键是整数,但Read-Host返回字符串。

答案 2 :(得分:0)

PSVersion 7 中的简单工作

$ha=@{0='aa';1='bb'}
$sel=0
$ha.$sel // 'aa'