$cars = "bmw","audi","volvo","vw"
echo $cars.length
返回4,但计数长度,如果它仅包含一个元素
$cars = "bmw"
返回3,因为它计算字符..
是否有一种方法可以返回1如果数组只包含一个项目?
$cars = "bmw","audi","volvo","vw"
echo $cars.length
返回4,但计数长度,如果它仅包含一个元素
$cars = "bmw"
返回3,因为它计算字符..
是否有一种方法可以返回1如果数组只包含一个项目?
一对夫妇的其他选项:
用逗号来创建磁盘阵列:
$cars = ,"bmw"
$cars.GetType().FullName
# Outputs: System.Object[]
使用数组子表达式语法:
$cars = @("bmw")
$cars.GetType().FullName
# Outputs: System.Object[]
如果你不希望一个对象数组,你可以向下转换到你想要的类型例如一个字符串数组。
[string[]] $cars = ,"bmw"
[string[]] $cars = @("bmw")
而是写echo $cars.length
写echo @($cars).length
这帮了我很多。具有1个元素“$ packs.Count”的数组没有返回任何东西。有几个元素,它运作良好。将其更改为“@($ packs).count”后,它也返回1。万分感谢!你能解释这种行为吗? – Hardoman 2017-04-13 13:46:31
谢谢安迪!我看到我的脚本失败,因为如果system.object []的值。有没有办法将内容处理为字符串? – Sune 2012-03-06 10:08:25
@Sune是的,你只是向下投射到一个字符串数组。我添加了例子。 – 2012-03-06 10:25:44
这个工程!非常感谢:) – Sune 2012-03-07 07:54:24