$cars = "bmw","audi","volvo","vw"
echo $cars.length
返回4,但
$cars = "bmw"
返回3,因为它会计算字符..
如果数组只包含一个项目,有没有办法可以返回1?
答案 0 :(得分:29)
其他几个选项:
使用逗号运算符创建数组:
$cars = ,"bmw"
$cars.GetType().FullName
# Outputs: System.Object[]
使用数组子表达式语法:
$cars = @("bmw")
$cars.GetType().FullName
# Outputs: System.Object[]
如果您不想要一个对象数组,您可以向下转换为您想要的类型,例如一个字符串数组。
[string[]] $cars = ,"bmw"
[string[]] $cars = @("bmw")
答案 1 :(得分:15)
而不是写echo $cars.length
写echo @($cars).length
答案 2 :(得分:7)
将数组声明为:
$car = array("bmw")
修改强>
现在使用PowerShell语法:)
$car = [array]"bmw"
答案 3 :(得分:0)
也许我遗漏了一些东西(很多很多投票的成员在这里回答的问题似乎与我不同,但我认为这是不对的,这是不合理的),但是长度不是计算某物的正确术语。长度通常用于获取您得到的,而不是您想要的。
$cars.count
应该给您您想要的东西。