How to always return array object in PowerShell?


I have a PowerShell Script, I get all items from the SharePoint list. After getting all items I want to filter by a condition so I used the Where-Object as following.

# fyi, % -> ForEach-Object
[array]$items = Get-PnPListItem @HashArguments | `
  %{New-Object psobject -Property `
    Id                          = $_.Id; 
    reqStatus                   = $_["reqStatus"];
  }} | `
  select ID, 

[array]$PendingFilteredItems  = $items | Where-Object {$_.reqStatus -contains 'Active'}  | Sort-Object -Property Id

if ( ($PendingFilteredItems -ne $null) -and ($PendingFilteredItems.Count -gt 0) )
   # ... further processing for array count is greater than zero

All worked fine, the condition was hitting for greater than zero items. But issue came when the item left in the SharePoint list as one item. I always got a “PSCustomObject” as a type for the PendingFilteredItems.

How to always return and array for any number of items left?

Basically I had to add an [array] type for the variable. It is highlighted in the above code.


I know it is simple post for such a solution. If you read this and fix the issue at your side this will save lot of time. I will be happy that you saved some time.

About Pankaj

I am a Developer and my linked profile is
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s