Count length of array and return 1 if it only cont

2020-02-09 06:56发布

问题:

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

returns 4, but

$cars = "bmw"

returns 3 because it counts the characters..

Is there a way I can return 1 if the array only contains one item?

回答1:

A couple other options:

  1. Use the comma operator to create an array:

    $cars = ,"bmw"
    $cars.GetType().FullName
    # Outputs: System.Object[]
    
  2. Use array subexpression syntax:

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

If you don't want an object array you can downcast to the type you want e.g. a string array.

 [string[]] $cars = ,"bmw"
 [string[]] $cars = @("bmw")


回答2:

Instead of writing echo $cars.length write echo @($cars).length



回答3:

declare you array as:

$car = array("bmw")

EDIT

now with powershell syntax:)

$car = [array]"bmw"