Bird
Raised Fist0
PowerShellscripting~10 mins

Sort-Object for ordering in PowerShell - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to sort the numbers in ascending order.

PowerShell
1, 5, 3, 2, 4 | Sort-Object [1]
Drag options to blanks, or click blank then click option'
A-Ascending
B-Descending
C-Unique
D-CaseSensitive
Attempts:
3 left
💡 Hint
Common Mistakes
Using -Descending will sort in reverse order.
Using -Unique removes duplicates but does not sort.
Using -CaseSensitive is for string comparison, not sorting order.
2fill in blank
medium

Complete the code to sort a list of strings in descending order.

PowerShell
'apple', 'banana', 'cherry' | Sort-Object [1]
Drag options to blanks, or click blank then click option'
A-Unique
B-CaseSensitive
C-Descending
D-IgnoreCase
Attempts:
3 left
💡 Hint
Common Mistakes
Using -Unique does not affect order but removes duplicates.
Using -CaseSensitive changes how letters are compared but not order direction.
Using -IgnoreCase affects case sensitivity, not order direction.
3fill in blank
hard

Fix the error in the code to sort objects by the 'Name' property in ascending order.

PowerShell
$users | Sort-Object -Property [1]
Drag options to blanks, or click blank then click option'
AAge
Bname
Cusername
DName
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'name' with lowercase n causes no sorting because property not found.
Using unrelated property names like 'Age' or 'username' sorts by wrong property.
4fill in blank
hard

Fill both blanks to sort the list of numbers in descending order and remove duplicates.

PowerShell
5, 3, 5, 2, 3 | Sort-Object [1] [2]
Drag options to blanks, or click blank then click option'
A-Descending
B-Unique
C-Ascending
D-CaseSensitive
Attempts:
3 left
💡 Hint
Common Mistakes
Using -Ascending sorts in the wrong order.
Using -CaseSensitive is irrelevant for numbers.
Forgetting -Unique keeps duplicates.
5fill in blank
hard

Fill all three blanks to sort a list of objects by 'Score' descending, then by 'Name' ascending.

PowerShell
$players | Sort-Object [1] [2] [3]
Drag options to blanks, or click blank then click option'
A-Property Score
B-Descending
C-Property Name
D-Ascending
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up properties and directions.
Not specifying properties correctly.
Using -Ascending on Score instead of -Descending.

Practice

(1/5)
1. What does the PowerShell cmdlet Sort-Object do?
easy
A. It creates new objects from scratch.
B. It arranges objects in a specified order based on property values.
C. It deletes objects from a list.
D. It counts the number of objects in a list.

Solution

  1. Step 1: Understand the purpose of Sort-Object

    Sort-Object is used to order or arrange objects based on their properties or values.
  2. Step 2: Compare options with the cmdlet's function

    Only It arranges objects in a specified order based on property values. correctly describes arranging objects in order. Other options describe unrelated actions.
  3. Final Answer:

    It arranges objects in a specified order based on property values. -> Option B
  4. Quick Check:

    Sort-Object orders data = C [OK]
Hint: Sort-Object means arranging data in order [OK]
Common Mistakes:
  • Confusing sorting with deleting or counting
  • Thinking Sort-Object creates new objects
  • Assuming it only works on numbers
2. Which of the following is the correct syntax to sort a list of numbers stored in $numbers in descending order?
easy
A. $numbers | Sort-Object Descending
B. $numbers | Sort-Object /Descending
C. $numbers | Sort-Object -descend
D. $numbers | Sort-Object -Descending

Solution

  1. Step 1: Recall the correct parameter for descending order

    The correct parameter is -Descending with a dash and full word.
  2. Step 2: Check each option's syntax

    $numbers | Sort-Object -Descending uses the correct dash and spelling. Options A, C, and D have syntax errors or wrong parameter format.
  3. Final Answer:

    $numbers | Sort-Object -Descending -> Option D
  4. Quick Check:

    Use dash and full '-Descending' [OK]
Hint: Use dash before parameters like -Descending [OK]
Common Mistakes:
  • Omitting the dash before parameters
  • Using incorrect parameter spelling
  • Using slashes instead of dashes
3. What is the output of this PowerShell code?
$data = @( @{Name='John'; Age=30}, @{Name='Anna'; Age=25}, @{Name='Mike'; Age=35} )
$data | Sort-Object Age | ForEach-Object { $_.Name }
medium
A. Anna, John, Mike
B. John, Anna, Mike
C. Mike, John, Anna
D. Anna, Mike, John

Solution

  1. Step 1: Understand sorting by Age property

    The code sorts the array of objects by the Age property in ascending order: 25, 30, 35.
  2. Step 2: Map sorted objects to their Name property

    After sorting, the names in order are Anna (25), John (30), Mike (35).
  3. Final Answer:

    Anna, John, Mike -> Option A
  4. Quick Check:

    Sort by Age ascending = Anna, John, Mike [OK]
Hint: Sort-Object defaults to ascending order [OK]
Common Mistakes:
  • Assuming Sort-Object sorts descending by default
  • Mixing up property names
  • Not accessing the Name property after sorting
4. You run this code but get an error:
$items = @(5, 3, 8, 1)
$items | Sort-Object -descendingg

What is the problem?
medium
A. You must use parentheses around the array.
B. Sort-Object cannot sort numbers.
C. The parameter '-descendingg' is misspelled.
D. The pipe operator '|' is not allowed here.

Solution

  1. Step 1: Check the parameter spelling

    The parameter should be -Descending, but it is misspelled as -descendingg.
  2. Step 2: Understand impact of misspelling

    PowerShell does not recognize the misspelled parameter, causing an error.
  3. Final Answer:

    The parameter '-descendingg' is misspelled. -> Option C
  4. Quick Check:

    Parameter spelling must be exact [OK]
Hint: Check parameter spelling carefully [OK]
Common Mistakes:
  • Misspelling parameters
  • Thinking Sort-Object can't sort numbers
  • Misunderstanding pipe usage
5. You have this list of objects:
$people = @( @{Name='Sam'; Score=90}, @{Name='Liz'; Score=90}, @{Name='Tom'; Score=85} )

You want to sort by Score descending, but if scores are equal, sort by Name ascending. Which command achieves this?
hard
A. $people | Sort-Object -Property @{Expression='Score';Descending=$true}, @{Expression='Name';Descending=$false}
B. $people | Sort-Object Name, Score -Descending
C. $people | Sort-Object Score -Descending | Sort-Object Name
D. $people | Sort-Object -Property Score, Name -Descending

Solution

  1. Step 1: Understand sorting by multiple properties with different orders

    You want Score sorted descending and Name sorted ascending when scores tie.
  2. Step 2: Analyze each option's approach

    $people | Sort-Object -Property @{Expression='Score';Descending=$true}, @{Expression='Name';Descending=$false} uses script blocks to specify descending for Score and ascending for Name correctly. $people | Sort-Object -Property Score, Name -Descending applies descending to both, which is wrong. $people | Sort-Object Score -Descending | Sort-Object Name sorts twice, losing the first order. $people | Sort-Object Name, Score -Descending sorts Name first, which is incorrect order.
  3. Final Answer:

    $people | Sort-Object -Property @{Expression='Score';Descending=$true}, @{Expression='Name';Descending=$false} -> Option A
  4. Quick Check:

    Use script blocks for mixed ascending/descending [OK]
Hint: Use script blocks to mix ascending and descending [OK]
Common Mistakes:
  • Applying -Descending to all properties at once
  • Sorting twice losing original order
  • Sorting properties in wrong priority order
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