title: Why are these linq outputs different?
body: <p>1st statement:</p>
  
  <pre><code>IEnumerable&lt;char&gt; query = "Not what you might expect";
  
  query = query.Where (c =&gt; c != 'a');
  query = query.Where (c =&gt; c != 'e');
  query = query.Where (c =&gt; c != 'i');
  query = query.Where (c =&gt; c != 'o');
  query = query.Where (c =&gt; c != 'u');
  </code></pre>
  
  <p>Output of <code>String.Join("", query)</code>: <code>"Nt wht y mght xpct"</code></p>
  
  <p>2nd statement:</p>
  
  <pre><code>query = "Not what you might expect";
  
  foreach (char vowel in "aeiou")
      query = query.Where (c =&gt; c != vowel);
  </code></pre>
  
  <p>Output of <code>String.Join("", query)</code>: <code>"Not what yo might expect"</code></p>
  
  <p>The outputs from these statements are different.
  Can any one explain why?</p>