title: Alter each value returned in a LINQ query at same time as query
body: <p>I was wondering if it were possible to perform an operation on every element returned in a LINQ query at the same time as performing the query itself.</p>
  
  <p>Example:</p>
  
  <pre><code>var files = Directory.EnumerateFiles(@"C:\etc", "*.*", SearchOption.AllDirectories)
                       .Where(s =&gt; (s.ToLower().EndsWith(".psd")) 
                                   &amp;&amp; 
                                   new FileInfo(s).Length &gt; 500000);
  </code></pre>
  
  <p>finds all files within set criteria, but if I wanted to say trim "C:\" from each string that was returned, could I somehow say s = f(s) after the where clause or would this be a separate foreach each loop.</p>
  
  <p>Thanks.</p>