title: How to remove item from an array in PowerShell?
body: <p>I'm using Powershell 1.0 to remove an item from an Array. Here's my script:</p>
  
  <pre><code>param (
      [string]$backupDir = $(throw "Please supply the directory to housekeep"), 
      [int]$maxAge = 30,
      [switch]$NoRecurse,
      [switch]$KeepDirectories
      )
  
  $days = $maxAge * -1
  
  # do not delete directories with these values in the path
  $exclusionList = Get-Content HousekeepBackupsExclusions.txt
  
  if ($NoRecurse)
  {
      $filesToDelete = Get-ChildItem $backupDir | where-object {$_.PsIsContainer -ne $true -and $_.LastWriteTime -lt $(Get-Date).AddDays($days)}
  }
  else
  {
      $filesToDelete = Get-ChildItem $backupDir -Recurse | where-object {$_.PsIsContainer -ne $true -and $_.LastWriteTime -lt $(Get-Date).AddDays($days)}
  }
  
  foreach ($file in $filesToDelete)
  {       
      # remove the file from the deleted list if it's an exclusion
      foreach ($exclusion in $exclusionList)
      {
          "Testing to see if $exclusion is in " + $file.FullName
          if ($file.FullName.Contains($exclusion)) {$filesToDelete.Remove($file); "FOUND ONE!"}
      }
  }
  </code></pre>
  
  <p>I realize that Get-ChildItem in powershell returns a System.Array type. I therefore get this error when trying to use the Remove method:</p>
  
  <pre><code>Method invocation failed because [System.Object[]] doesn't contain a method named 'Remove'.
  </code></pre>
  
  <p>What I'd like to do is convert $filesToDelete to an ArrayList and then remove items using ArrayList.Remove. Is this a good idea or should I directly manipulate $filesToDelete as a System.Array in some way?</p>
  
  <p>Thanks</p>