Home » Using PowerShell Where-Object Cmdlet with List

Using PowerShell Where-Object Cmdlet with List

In PowerShell, the Where-Object cmdlet can be used to filter elements in the list or array based on specific conditions.

The following methods show how you can do it with syntax.

Method 1: Filtering elements from a list using Where-Object

$languages = @("Python", "C#", "C", "C++", "VB", "Java", "Go")
$result = $languages | Where-Object { $_ -ne "Java"}
$result

In this example, it will exclude the “Java” language from the list and return the elements in the $languages.

Method 2: Filter elements from a list

$list = @(10, 20, 30, 40, 50, 60, 70, 80, 90, 100)

$result = $list | Where-Object { $_ -gt 50 }

$result

In this example, it will filter elements from a list and return the element greater than 50.

Method 3: Filter elements from a list of custom objects

$employees = @(
     [PSCustomObject]@{ Name = "Alex"; Age = 30; Department = "IT" },
     [PSCustomObject]@{ Name = "Gary"; Age = 35; Department = "Sales" },
     [PSCustomObject]@{ Name = "Ricky"; Age = 38; Department = "IT" }
)

$itEmployees = $employees | Where-Object { $_.Department -eq "IT" }

$itEmployees

In this example, it will return the list of employees in the IT department.

The following examples show how you can use these methods.

Filtering Elements from a List Using Where-Object

The following PowerShell script shows how you can do it.

# define a list of languages
$languages = @("Python", "C#", "C", "C++", "VB", "Java", "Go")

# Filter the elements in the list to exclude "Java" and get other languages
$result = $languages | Where-Object { $_ -ne "Java"}

# Output the list
$result

Output:

PowerShell Where-Object in List
PowerShell Where-Object in List

In this example, we define a $languages variable that contains a list of programming languages.

The $languages pipe to the Where-Object cmdlet to filter elements based on the condition specified { $_ -ne "Java"} . It returns the list of elements excluding “Java” and stores them in the $result variable.

Finally, we print the list of elements.

Using Where-Object in List to Filter Elements

Let’s consider an example, we have a list of numbers. The objective is to get the list of numbers greater than 50.

The following PowerShell script shows how you can do it.

# Create a list of numbers
$list = @(10, 20, 30, 40, 50, 60, 70, 80, 90, 100)

# Filter the element from a list greater than 50 
$result = $list | Where-Object { $_ -gt 50 }

# Outputs the result
$result

Output:

Using Where-Object in List
Using Where-Object in List

In this PowerShell example, we define a $list that contains the list of numbers.

We then pipe the $list to the Where-Object cmdlet to filter elements greater than 50 and store the result in the $result variable.

Finally, it outputs the result.

Using PowerShell Where-Object in List of Custom Objects

You can use the Where-Object cmdlet in PowerShell to filter elements from a list of custom objects. Here’s how you can do it.

# Create a list of custom objects
$employees = @(
     [PSCustomObject]@{ Name = "Alex"; Age = 30; Department = "IT" },
     [PSCustomObject]@{ Name = "Gary"; Age = 35; Department = "Sales" },
     [PSCustomObject]@{ Name = "Ricky"; Age = 38; Department = "IT" }
)

# Filter the list to get employees in the IT department
$itEmployees = $employees | Where-Object { $_.Department -eq "IT" }

$itEmployees

Output:

Using PowerShell Where-Object in List of Custom Objects
Using PowerShell Where-Object in List of Custom Objects

In this example, we have created a list of custom objects using [PSCustomObject] and stored them in the $employees variable.

We use the Where-Object to filter the employees based on their Department property and select only those in the “IT” department.

The resulting $itEmployees variable contains the filtered list containing employees from the “IT” department.

Conclusion

I hope the above article on using the PowerShell Where-Object cmdlet in List is helpful to you.

You can find more topics about Active Directory tools and PowerShell basics on the ActiveDirectoryTools home page.