The Powershell code:
$list += "aa"
appends the element "aa" to the list $list. Is there a way to prepend an element? This is my solution, but there must be a way to do this in a single line.
$tmp = ,"aa"; $tmp += $list $list = $tmp
To add value to the array, you need to create a new copy of the array and add value to it. To do so, you simply need to use += operator. For example, you have an existing array as given below. To add value “Hello” to the array, we will use += sign.
Inserts an array element at the beginning of an array and shifts the positions of the existing elements to make room.
What is @() in PowerShell Script? In PowerShell, the array subexpression operator “@()” is used to create an array. To do that, the array sub-expression operator takes the statements within the parentheses and produces the array of objects depending upon the statements specified in it.
Windows PowerShell arrays are zero-based, so to refer to the first element of the array $var3 (“element zero”), you would write $var3 [0].
In your example above, you should just be able to do:
$list = ,"aa" + $list
That will simply prepend "aa" to the list and make it the 0th element. Verify by getting $list[0]
.
Using +=
and +
on arrays in PowerShell is making a copy of the array every time you use it. That is fine unless the list/array is really large. In that case, consider using a generic list:
C:\> $list = new-object 'System.Collections.Generic.List[string]' C:\> $list.Add('a') C:\> $list.Add('b') C:\> $list.Insert(0,'aa') C:\> $list aa a b
Note that in this scenario you need to use the Add/Insert methods. If you fall back to using +=
, it will copy the generic list back to an object[]
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With