title: Does the .Net Framework implementation of Linq optimize Skip for indexable types?
body: <p>Here's an example:</p>
  
  <pre><code>static int Main(string[] args)
  {
      foreach(string arg in args.Skip(77))
      {
          Console.WriteLine(arg);
      }
  
      return 0;
  }
  </code></pre>
  
  <p>Assuming enough <code>args</code>, does this call <code>MoveNext</code> 77 times inside <code>Skip</code>?  Or does <code>Skip</code> jump straight to the appropriate index?</p>