Powershell 检查号码是否属于列表

Powershell 检查号码是否属于列表,powershell,Powershell,我想验证用户输入的号码是否属于预定义列表,但-contains运算符的行为与我预期的稍有不同: 0 -contains 0. True 该列表是使用命令(获取磁盘).number生成的。对于输入0.,如何获取False?首先,您应该将(获取磁盘)的输出包装起来。使用@()对进行编号,以强制列表成为一个数组。然后,确保它是一个使用强制转换的字符串数组。最后,使用字符串传递要检查的数字: [string[]]$list = @((get-disk).number) # my list contai

我想验证用户输入的号码是否属于预定义列表,但
-contains
运算符的行为与我预期的稍有不同:

0 -contains 0.
True

该列表是使用命令
(获取磁盘).number
生成的。对于输入
0.
如何获取
False

首先,您应该将
(获取磁盘)的输出包装起来。使用
@()
进行编号,以强制列表成为一个数组。然后,确保它是一个使用强制转换的字符串数组。最后,使用字符串传递要检查的数字:

[string[]]$list = @((get-disk).number) # my list contains only 0

$list -contains "0." # False

双精度
0。
等于int
0
等于字符串
“0”
,因此您必须将其作为字符串传递。

0,00,000等仍返回true。我错过了带点的部分,抱歉。答案已更新。@PawełDyl否,这不起作用,因为get disk的返回值是一个UInt32数组,字符串“0”将被转换为0。您还可以使用
(get disk).number.ToString()-包含“0”。