This script creates a list of people with their ages. It sorts them by age from youngest to oldest and prints their names with ages.
PowerShell
$data = @(
@{Name='John'; Age=30},
@{Name='Anna'; Age=25},
@{Name='Mike'; Age=35}
)
$data | Sort-Object -Property Age | ForEach-Object { "$($_.Name) is $($_.Age) years old" }
OutputSuccess
Important Notes
Sort-Object works well with both simple values and complex objects.
Use -Descending to reverse the order.
Sorting large data sets may take more time.
Summary
Sort-Object arranges data in order to make it easier to understand.
You can sort by any property or value.
Use -Descending to sort from highest to lowest.
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
Step 1: Understand the purpose of Sort-Object
Sort-Object is used to order or arrange objects based on their properties or values.
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.
Final Answer:
It arranges objects in a specified order based on property values. -> Option B
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
Step 1: Recall the correct parameter for descending order
The correct parameter is -Descending with a dash and full word.
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.
Final Answer:
$numbers | Sort-Object -Descending -> Option D
Quick Check:
Use dash and full '-Descending' [OK]
Hint: Use dash before parameters like -Descending [OK]
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
Step 1: Understand sorting by multiple properties with different orders
You want Score sorted descending and Name sorted ascending when scores tie.
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.
Final Answer:
$people | Sort-Object -Property @{Expression='Score';Descending=$true}, @{Expression='Name';Descending=$false} -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.