title: list.Take(100).ToList() vs. list.GetRange(0,100)
body: <pre><code>List&lt;AttendeeInfo&gt; attendees = new List&lt;AttendeeInfo&gt;();
  foreach ...
  // Error: "There are too many target users in the email address array"
  // for more than 100 attendees. So take the first 100 attendees only.
  if(attendees.Count &gt; 100) attendees = attendees.GetRange(0,100);
  // or
  if(attendees.Count &gt; 100) attendees = attendees.Take(100).ToList();
  </code></pre>
  
  <p>Since I work on a list which is always longer than 100, and always take the first 100, the most obvious differences (Evaluation strategy, possibility to skip, throwing on errors) are not really interesting.</p>
  
  <p>But perhaps you could shed some light on what exactly "Creates a shallow copy of a range of elements in the source List" means. It sounds really expensive, more so than Take, but is it?</p>