Подтвердить что ты не робот

Рассчитать длину массива и вернуть 1, если он содержит только один элемент

$cars = "bmw","audi","volvo","vw"
echo $cars.length

возвращает 4, но

$cars = "bmw"

возвращает 3, потому что он подсчитывает символы.

Есть ли способ, которым я могу вернуть 1, если массив содержит только один элемент?

4b9b3361

Ответ 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"