How to create a literal array in powershell
Create an Empty array
$data = @()
This works....
A literal array
$MyArray = @(
"Item0";
"Item1";
"Item2";
)
Hell, even this works:
Literal Array Easy Syntax
$MyArray = "Item0", "Item1", "Item2";
Both have same type:
> $MyArray.GetType()
result:
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
And both contain strings...
> $MyArray | % { $_.GetType() }
result:
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
True True String System.Object
True True String System.Object
So I think the second one is simpler. Go with that.
Use an array
Access items by index offset (this offset like most offsets is zero-based)
$MyArray[0]
Fancy ways to access arrays
$MyArray[0,5,12]
and
$MyArray[1..3]
and
$MyArray[-1..-4]
Count Items in an arrays
$MyArray.count
Last Item in an array
$MyArray[-1]
For-Each Through An Array (Iterating)
$MyArray | ForEach-Object {"Item: [$PSItem]"}
returns
Item: [Zero]
Item: [One]
Item: [Two]
Item: [Three]
Add an item to an array
To add an item to an array in powershell - we do not push or concatenate - we "plus equals" or +=
$data = @(
'Zero'
'One'
'Two'
'Three'
)
$data += 'four'