title: Values don't leave the stack after Pop (Stack<T>)
body: <p>The stack is formed from a list that was grouped. Then there are several foreachs where <code>Pop</code> is called.
  But the number of values in the stacks does not decrease.
  Please explain why. Thank you in advance!</p>
  
  <pre><code>    public static void N(){
      var test = new List&lt;int&gt;(){1,1,1,2,2,3,3,3,3,4,4,5,6,7,7,7,7,8};
      var testGr = test.GroupBy(x=&gt;x);
  
      var stacked = testGr.Select(x=&gt; new {
          num = x.Key,
          stack = new Stack&lt;int&gt;(x)
      });
  
      var testNumOne = stacked.First(x=&gt;x.num==1);        
      Console.WriteLine(testNumOne.stack.Count());
  
      foreach(var x in new List&lt;int&gt;(){1,2,1,2,3}){
          var flush = stacked.First(y =&gt; y.num == x).stack.Pop();
      }
  
      testNumOne = stacked.First(x=&gt;x.num==1);        
      Console.WriteLine(testNumOne.stack.Count());
  }
  </code></pre>