Chapter 7. Lists, Arrays, and Hashtables
Introduction
Most scripts deal with more than one thing—lists of servers, lists of files, lookup codes, and more. To enable this, PowerShell supports many features to help you through both its language features and utility cmdlets.
PowerShell makes working with arrays and lists much like working with other data types: you can easily create an array or list and then add or remove elements from it. You can just as easily sort it, search it, or combine it with another array. When you want to store a mapping between one piece of data and another, a hashtable fulfills that need perfectly.
Create an Array or List of Items
Problem
You want to create an array or list of items.
Solution
To create an array that holds a given set of items, separate those items with commas:
PS > $myArray = 1,2,"Hello World" PS > $myArray 1 2 Hello World
To create an array of a specific size, use the New-Object cmdlet:
PS > $myArray = New-Object string[] 10 PS > $myArray[5] = "Hello" PS > $myArray[5] Hello
To create an array of a specific type, use a strongly typed collection:
PS > $list = New-Object Collections.Generic.List[Int]
PS > $list.Add(10)
PS > $list.Add("Hello")
Cannot convert argument "0", with value: "Hello", for "Add" to type "System
.Int32": "Cannot convert value "Hello" to type "System.Int32". Error:
"Input string was not in a correct format.""To store the output of a command that generates a list, use variable assignment:
PS > $myArray = Get-Process PS > $myArray Handles ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access