$InputArray = @(a,e,i,o,u,1,2,3,4,5)
$UserInput = "Enter any value:"
我们如何检查它$UserInput
是否$InputArray
存在并提示输入正确?
$InputArray = @(a,e,i,o,u,1,2,3,4,5)
$UserInput = "Enter any value:"
我们如何检查它$UserInput
是否$InputArray
存在并提示输入正确?
使用-contains
运算符:
$InputArray -contains $UserInput
对于更新的 PowerShell 版本(v3 及更高版本),您还可以使用-in
运算符,这对许多人来说感觉更自然:
$UserInput -in $InputArray
但请注意,它们中的任何一个都会对参考数组 ( $InputArray
) 进行线性搜索。如果您的数组很小并且您没有进行大量比较,这并没有什么坏处,但是如果性能是一个问题,则使用哈希表查找将是一种更好的方法:
$validInputs = @{
'a' = $true
'e' = $true
'i' = $true
'o' = $true
'u' = $true
'1' = $true
'2' = $true
'3' = $true
'4' = $true
'5' = $true
}
$validInputs.ContainsKey($UserInput)
我了解您正在学习,但您需要在来这里之前使用 Google-fu 和文档。
$inputArray -contains $userinput
我在 powershell 中一直使用的有趣技巧:该echo
命令会将未引用的参数转换为字符串数组。
(echo a b c) -contains 'a'
# outputs True / returns $true
这比打字容易得多@('a','b','c')
。在每第二或第三个字符之后,我的手指从来没有快速输入'。