Рассчитать длину массива и вернуть 1, если он содержит только один элемент
$cars = "bmw","audi","volvo","vw"
echo $cars.length
возвращает 4, но
$cars = "bmw"
возвращает 3, потому что он подсчитывает символы.
Есть ли способ, которым я могу вернуть 1, если массив содержит только один элемент?
Ответы
Ответ 1
Пара других опций:
-
Используйте оператор запятой для создания массива:
$cars = ,"bmw"
$cars.GetType().FullName
# Outputs: System.Object[]
-
Использовать синтаксис подвыражения массива:
$cars = @("bmw")
$cars.GetType().FullName
# Outputs: System.Object[]
Если вам не нужен массив объектов, вы можете сбрасывать его до нужного вам типа, например. массив строк.
[string[]] $cars = ,"bmw"
[string[]] $cars = @("bmw")
Ответ 2
Вместо записи echo $cars.length
напишите echo @($cars).length
Ответ 3
объявите массив как:
$car = array("bmw")
ИЗМЕНИТЬ
теперь с синтаксисом powershell:)
$car = [array]"bmw"