title: Processing Lists and List.Take()
body: <p>Given:</p>
  
  <pre><code>// got a dictionary wrapped in a class - reading values into list
  List&lt;string&gt; caplist = QuizData.Dict.Values.ToList();
  
  // shuffle cap list - I know it's not "really random"
  var rnd = new Random();
  var shufcapList = caplist.OrderBy(item =&gt; rnd.Next());
  
  // take first fifteen from shuffled list for caps choices
  var firstFifteenItems = shufcapList.Take(15);
  foreach (string cap1 in firstFifteenItems) {
      Console.WriteLine("1st_15"+cap1); //seems OK 
  
  }
  
  // take first 6 from firstFifteenItems (it's been shuffled) list for states
  var firstSixItems = firstFifteenItems.Take(6); 
  foreach (string cap2 in firstSixItems)   {
      Console.WriteLine("1st_6" + cap2);
  }
  </code></pre>
  
  <p>But firstSixItems is <strong>not</strong> a subset of firstFifteenItems. Shouldn't it be? is I count 15 items in firstFifteenItems looking at the console output. I count 6 items from firstSixItems but those items are not in firstFifteenItems. I want to non destructively copy the first 6 items from one list into another. I am missing something obvious? Grateful for help.</p>