【发布时间】:2012-03-06 08:35:14
【问题描述】:
$cars = "bmw","audi","volvo","vw"
echo $cars.length
返回 4,但是
$cars = "bmw"
返回 3 因为它计算字符数..
如果数组只包含一项,有没有办法可以返回 1?
【问题讨论】:
标签: arrays powershell
$cars = "bmw","audi","volvo","vw"
echo $cars.length
返回 4,但是
$cars = "bmw"
返回 3 因为它计算字符数..
如果数组只包含一项,有没有办法可以返回 1?
【问题讨论】:
标签: arrays powershell
其他几个选项:
使用逗号运算符创建数组:
$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
【讨论】:
声明你的数组为:
$car = array("bmw")
编辑
现在使用 powershell 语法:)
$car = [array]"bmw"
【讨论】:
也许我遗漏了一些东西(这里有很多赞成投票的成员的答案似乎与我的看法不同,这似乎令人难以置信,我是正确的),但长度并不是计算某些东西的正确术语。长度通常用于获取你得到的,而不是你想要的。
$cars.count 应该会给你你想要的东西。
【讨论】:
file(或string),它的length 指的是它的大小,而它的count 指的是相关文件的数量。所以它们并不相同。但是对于array,array 的length 和它的count 是相同的。如果愿意,请跳入兔子洞@Length, Count and arrays – Cloud Notes。没那么深:)