Bird
Raised Fist0
PowerShellscripting~30 mins

Object arrays in PowerShell - Mini Project: Build & Apply

Choose your learning style10 modes available
Working with Object Arrays in PowerShell
📖 Scenario: You are managing a small inventory system for a local bookstore. You want to keep track of books using PowerShell objects. Each book has a Title, Author, and Price. You will create an array of book objects, set a price limit, filter books below that price, and display the filtered list.
🎯 Goal: Build a PowerShell script that creates an array of book objects, sets a price limit, filters books cheaper than the limit, and prints the filtered books.
📋 What You'll Learn
Create an array of book objects with exact properties and values
Add a variable for the price limit
Filter the array to include only books cheaper than the price limit
Print the filtered list of books
💡 Why This Matters
🌍 Real World
Managing collections of items like books, products, or users is common in automation scripts. Object arrays let you organize and filter data easily.
💼 Career
PowerShell scripting with object arrays is useful for IT admins and automation engineers to handle system inventories, reports, and data filtering.
Progress0 / 4 steps
1
Create an array of book objects
Create an array called $books containing these three book objects with properties Title, Author, and Price: 'The Hobbit', 'J.R.R. Tolkien', 15.99; '1984', 'George Orwell', 12.5; 'Pride and Prejudice', 'Jane Austen', 9.99.
PowerShell
Hint

Use [PSCustomObject] to create each book object and put them inside an array @( ... ).

2
Set a price limit variable
Create a variable called $priceLimit and set it to 13.
PowerShell
Hint

Just assign the number 13 to the variable $priceLimit.

3
Filter books cheaper than the price limit
Create a new variable called $affordableBooks that contains only the books from $books where the Price is less than $priceLimit. Use the Where-Object cmdlet with a script block comparing $_ object's Price property to $priceLimit.
PowerShell
Hint

Use Where-Object { $_.Price -lt $priceLimit } to filter the array.

4
Print the filtered list of affordable books
Print the $affordableBooks variable to display the filtered books.
PowerShell
Hint

Simply type $affordableBooks to print the filtered list.

Practice

(1/5)
1. What is an object array in PowerShell?
easy
A. A type of function that returns objects
B. A single object with many properties
C. A command to create new objects
D. A variable that holds multiple objects together in a list

Solution

  1. Step 1: Understand the definition of object arrays

    An object array is a collection that holds many objects in one variable, like a list.
  2. Step 2: Compare options with the definition

    Only A variable that holds multiple objects together in a list correctly describes an object array as a variable holding multiple objects.
  3. Final Answer:

    A variable that holds multiple objects together in a list -> Option D
  4. Quick Check:

    Object array = list of objects [OK]
Hint: Remember: arrays hold many items together [OK]
Common Mistakes:
  • Confusing object arrays with single objects
  • Thinking object arrays are commands
  • Mixing arrays with functions
2. Which of the following is the correct way to create an empty object array in PowerShell?
easy
A. $array = ()
B. $array = @()
C. $array = new-object array
D. $array = {}

Solution

  1. Step 1: Recall PowerShell syntax for empty arrays

    PowerShell uses @() to create an empty array.
  2. Step 2: Check each option

    $array = @() uses @(), which is correct. $array = () uses (), which assigns $null, not an array. $array = new-object array is incorrect syntax. $array = {} uses {}, which creates a hashtable, not an array.
  3. Final Answer:

    $array = @() -> Option B
  4. Quick Check:

    Empty array syntax = @() [OK]
Hint: Use @() to create empty arrays in PowerShell [OK]
Common Mistakes:
  • Using () which assigns null, not an array
  • Confusing arrays with hashtables {}
  • Trying to use new-object for arrays
3. What will be the output of this PowerShell code?
$array = @()
$array += 'apple'
$array += 'banana'
$array += 'cherry'
$array
medium
A. apple banana cherry
B. @('apple', 'banana', 'cherry')
C. apple banana cherry
D. Error: Cannot add to array

Solution

  1. Step 1: Understand how += adds items to arrays

    Using += adds each string as a new element to the array.
  2. Step 2: Output the array variable

    When output, PowerShell prints each element on a new line, so the output is three lines: apple, banana, cherry.
  3. Final Answer:

    apple banana cherry -> Option A
  4. Quick Check:

    Array elements print line by line [OK]
Hint: Arrays print each item on its own line [OK]
Common Mistakes:
  • Expecting all items on one line separated by spaces
  • Thinking += causes an error on arrays
  • Confusing array output with string output
4. Identify the error in this PowerShell script:
$array = @()
$array += 'one'
$array = $array + 'two'
$array = $array + 3
$array
medium
A. No error; script runs and outputs all items
B. Using + operator on arrays causes error
C. Cannot add integer to string array
D. Array must be declared with fixed size

Solution

  1. Step 1: Check adding different types to array

    PowerShell arrays can hold mixed types, so adding integer 3 is allowed.
  2. Step 2: Check use of + operator on arrays

    Using + concatenates arrays or adds items; it works fine here.
  3. Final Answer:

    No error; script runs and outputs all items -> Option A
  4. Quick Check:

    PowerShell arrays accept mixed types and + works [OK]
Hint: PowerShell arrays can mix types and use + to add items [OK]
Common Mistakes:
  • Thinking arrays only hold one data type
  • Believing + operator causes errors on arrays
  • Assuming arrays need fixed size
5. You have an array of objects representing people:
$people = @(
  [pscustomobject]@{Name='Alice'; Age=30},
  [pscustomobject]@{Name='Bob'; Age=25},
  [pscustomobject]@{Name='Carol'; Age=35}
)

How do you add a new person object with Name='Dave' and Age=40 to this array?
hard
A. $people = @($people, @{Name='Dave'; Age=40})
B. $people = $people + @{Name='Dave'; Age=40}
C. $people += [pscustomobject]@{Name='Dave'; Age=40}
D. $people.Add([pscustomobject]@{Name='Dave'; Age=40})

Solution

  1. Step 1: Create a new person object correctly

    Use [pscustomobject]@{Name='Dave'; Age=40} to create the new object.
  2. Step 2: Add the new object to the existing array

    Use += to add the new object to the $people array. $people += [pscustomobject]@{Name='Dave'; Age=40} does this correctly.
  3. Final Answer:

    $people += [pscustomobject]@{Name='Dave'; Age=40} -> Option C
  4. Quick Check:

    Add object to array using += [OK]
Hint: Use += with new [pscustomobject] to add to array [OK]
Common Mistakes:
  • Forgetting [pscustomobject] and adding plain hashtable
  • Using .Add() which does not work on arrays
  • Reassigning array incorrectly causing nested arrays
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard