title: Is Select optional in a LINQ statement?
body: <p>I was looking over some LINQ examples, and was thereby reminded they are supposed to have a "select" clause at the end.</p>
  
  <p>But I have a LINQ that's working and has no "Select":</p>
  
  <pre><code>public IEnumerable&lt;InventoryItem&gt; Get(string ID, int packSize, int CountToFetch)
  {
      return inventoryItems
          .Where(i =&gt; (i.Id.CompareTo(ID) == 0 &amp;&amp; i.PackSize &gt; packSize) || i.Id.CompareTo(ID) &gt; 0)
          .OrderBy(i =&gt; i.Id)
          .ThenBy(i =&gt; i.PackSize)
          .Take(CountToFetch)
          .ToList();
  }
  </code></pre>
  
  <p>Is this because:</p>
  
  <pre><code>(a) select is not really necessary?
  (b) Take() is doing the "select"
  (c) ToList() is doing the "select"
  </code></pre>
  
  <p>Truth be told, this was working before I added the "ToList()" also... so it seems LINQ is quite permissive/lax in what it allows one to get away with.</p>
  
  <p>Also, in the LINQ I'm using, I think the OrderBy and ThenBy are redundant, because the SQL query used to populate inventoryItems already has an ORDER BY ID, PackSize clause. Am I right (that the .OrderBy() and .ThenBy() are unnecessary)?</p>