$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
echo $cars.length
echo @($cars).length
объявляет ваш массив как:
$car = array("bmw")
РЕДАКТИРОВАТЬ
теперь с синтаксисом powershell:)
$car = [array]"bmw"