Подсчитайте длину массива и верните 1, если он содержит только один элемент - PullRequest
20 голосов
/ 06 марта 2012
$cars = "bmw","audi","volvo","vw"
echo $cars.length

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

$cars = "bmw"

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

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

Ответы [ 3 ]

29 голосов
/ 06 марта 2012

Пара других опций:

  1. Используйте оператор запятой для создания массива:

    $cars = ,"bmw"
    $cars.GetType().FullName
    # Outputs: System.Object[]
    
  2. Используйте синтаксис подвыражения массива:

    $cars = @("bmw")
    $cars.GetType().FullName
    # Outputs: System.Object[]
    

Если вам не нужен массив объектов, вы можете уменьшить его до нужного вам типа, например, строкового массива.

 [string[]] $cars = ,"bmw"
 [string[]] $cars = @("bmw")
15 голосов
/ 07 марта 2012

Вместо записи echo $cars.length запись echo @($cars).length

7 голосов
/ 06 марта 2012

объявляет ваш массив как:

$car = array("bmw")

РЕДАКТИРОВАТЬ

теперь с синтаксисом powershell:)

$car = [array]"bmw"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...