使用变量键的 Powershell 哈希表值

6

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

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

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

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

感谢您所提供的任何帮助!


1
$choices.[int]$selection - user4003407
1
或者 $choices = @{ '0' = 'SelectionA'} :). 这是 PowerShell 的自动类型转换盲点之一。你的哈希表中的键是整数,但 Read-Host 返回字符串。 - beatcracker
3个回答

6

0

上面的评论都是正确的答案。我将它们作为答案添加以关闭问题。

PetSerAl提供:

$choices.[int]$selection

或者通过beatcracker

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

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

-1

在PSVersion 7中简单的工作

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接