title: Why does select-object -first 1 not return an array for consistency?
body: <p>When I pipe some objects to <code>select-object -first n</code> it returns an array except if <code>n</code> is 1:</p>
  
  <pre><code>PS C:\&gt; (get-process | select-object -first 1).GetType().FullName
  System.Diagnostics.Process
  
  PS C:\&gt; (get-process | select-object -first 2).GetType().FullName
  System.Object[]
  </code></pre>
  
  <p>For consistency reasons, I'd have expected both pipelines to return an array.</p>
  
  <p>Apparently, PowerShell chooses to return one object as object rather than as an element in an array.</p>
  
  <p>Why is that?</p>