title: Function not returning expected object
body: <p>I have a strange situation with this PowerShell function.  It is suppose to return the ArrayList object but in the case when the loop only adds 1 item to the ArrayList the function returns the SPList item instead of the Expected ArrayList object.  I am stumped on why PowerShell is behaving this way.  </p>
  
  <pre><code>function Get-ContentOrganizerRules
  (
      [System.String]$siteUrl = "http://some.sharepoint.url"
  
  )
  {
      Write-Host -ForegroundColor Gray "Searching for Content Organizer Rules: "  $siteUrl
  
  
      # ArrayList to hold any found DataConn Libs
      [System.Collections.ArrayList]$CORules = New-Object System.Collections.ArrayList($null)
  
  
      $lists = Get-SPWeb $siteUrl |
          Select -ExpandProperty Lists |
          Where { $_.GetType().Name -eq "SPList" -and  $_.hidden }
  
      foreach($list in $lists)
      {
          #Write-Host $list ;
  
          foreach($contenType in $list.ContentTypes){
              if($contenType -ne $null){
                  if($contenType.Id.ToString() -eq "0x0100DC2417D125A4489CA59DCC70E3F152B2000C65439F6CABB14AB9C55083A32BCE9C" -and $contenType.Name -eq "Rule")
                  {
                      $CORules.Add($list)&gt;$null;
                      Write-Host -BackgroundColor Green -ForegroundColor White "Content Organizer Rule found: " $list.Url&gt;$null;
                  }
              }
          }
      }
  
      return $CORules;
  
  }
  </code></pre>
  
  <p>This is the calling code:</p>
  
  <pre><code>$CORulesResults = Get-ContentOrganizerRules $web.URL;
                      if($CORulesResults.Count -gt 0){
                          $Results.AddRange($CORulesResults);
                      }
  </code></pre>