$InputArray = @(a,e,i,o,u,1,2,3,4,5)
$UserInput = "Enter any value:"
Run Code Online (Sandbox Code Playgroud)
我们如何检查$ UserInput是否在$ InputArray中并提示输入正确?
Ans*_*ers 16
使用-contains
运营商:
$InputArray -contains $UserInput
Run Code Online (Sandbox Code Playgroud)
使用更新的PowerShell版本(v3及更高版本),您也可以使用-in
运算符,这对许多人来说更自然:
$UserInput -in $InputArray
Run Code Online (Sandbox Code Playgroud)
但要注意,它们中的任何一个都在参考数组($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)
Run Code Online (Sandbox Code Playgroud)
我知道您正在学习,但在来到这里之前,您需要使用Google-fu和文档.
$inputArray -contains $userinput
Run Code Online (Sandbox Code Playgroud)
我一直在 powershell 中使用的有趣技巧:该echo
命令会将未加引号的参数转换为字符串数组。
(echo a b c) -contains 'a'
# outputs True / returns $true
Run Code Online (Sandbox Code Playgroud)
这比打字容易@('a','b','c')
。我的手指在每 2 个或第 3 个字符后输入 ' 的速度从未变快。
归档时间: |
|
查看次数: |
31408 次 |
最近记录: |