title: LINQ Design Curiosity: Skip/Take vs. SkipWhile/TakeWhile
body: <p>Is there any particular reason to have separate methods <code>Skip</code> and <code>SkipWhile</code>, rather than simply having overloads of the same method?</p>
  
  <p>What I mean is, instead of <code>Skip(int)</code>, <code>SkipWhile(Func&lt;TSource,bool&gt;)</code>, and <code>SkipWhile(Func&lt;TSource,int,bool&gt;)</code>, why not have <code>Skip(int)</code>, <code>Skip(Func&lt;TSource,bool&gt;)</code>, and <code>Skip(Func&lt;TSource,int,bool&gt;)</code>? I'm sure there's <em>some</em> reason for it, as the whole LINQ system was designed by people with much more experience than me, but that reasoning is not apparent.</p>
  
  <p>The only possibility that's come to mind has been issues with the parser for the SQL-like syntax, but that already distinguishes between things like <code>Select(Func&lt;TSource,TResult&gt;)</code> and <code>Select(Func&lt;TSource,int,TResult&gt;)</code>, so I doubt that's why.</p>
  
  <p>The same question applies to <code>Take</code> and <code>TakeWhile</code>, which are complimentary to the above.</p>
  
  <p>Edit: To clarify, I <em>am aware</em> of the functional differences between the variants, I'm merely asking about the design decision on the naming of the methods.</p>