Ada*_*dam 6 variables powershell hashtable key
我试图让用户做出选择,然后根据该选择从哈希表返回一个值。
我的哈希表如下所示:
$choices = @{ 0 = "SelectionA";
1 = "SelectionB";
99 = "SelectionC"}
Run Code Online (Sandbox Code Playgroud)
我的选择如下所示:
$selection = Read-Host -Prompt "
Please make a selection
0 - Selection A
1 - Selection B
99 - Selection C "
Run Code Online (Sandbox Code Playgroud)
然后我尝试根据这样的选择恢复该值:
$choices.$selection
Run Code Online (Sandbox Code Playgroud)
或者
$choices.{$selection}
Run Code Online (Sandbox Code Playgroud)
这不起作用。是否可以使用变量作为键来调用哈希表值?
谢谢你尽你所能的帮助!
小智 6
您可以使用 Get_Item 方法。
$myChoice = $choices.Get_Item($selection)
Run Code Online (Sandbox Code Playgroud)
您可能必须首先将 $selection 变量转换为整数,因为我相信它将作为字符串出现。
有关哈希表的更多信息:https ://technet.microsoft.com/en-us/library/ee692803.aspx
上面的评论都是正确答案。我将它们添加为结束问题的答案。
作者: PetSerAl:
$choices.[int]$selection
Run Code Online (Sandbox Code Playgroud)
或者通过beatcracker:
$choices = @{ '0' = 'SelectionA'}
Run Code Online (Sandbox Code Playgroud)
这是PowerShell 的自动类型转换盲点之一。哈希表中的键是整数,但 Read-Host 返回字符串。