title: IEnumerable Select
body: <p>Can someone explain why the following line of C# doesn't behave the same as the following foeach block?</p>
  
  <pre><code>string [] strs = {"asdf", "asd2", "asdf2"};
  strs.Select(str =&gt; doSomething(str));
  
  
  foreach(string str in strs){
    doSomething(str);
  }
  </code></pre>
  
  <p>I put a breakpoint inside of doSomething() and it doesn't fire in the Select but it does with the foreach.</p>
  
  <p>TIA</p>