title: linq "let" translation
body: <p>I understand that when the C# compiler sees a <a href="http://www.albahari.com/nutshell/linqsyntax.aspx" rel="noreferrer">linq query comprehension</a>, it basically does a straight translation to the corresponding Linq Extension methods and lambdas. i.e.</p>
  
  <pre><code>from x in list
  select x.property
  </code></pre>
  
  <p>gets translated to:</p>
  
  <pre><code>list.Select(x =&gt; x.property)
  </code></pre>
  
  <p>my question is what do <code>let</code> clauses get translated to.  for example how would this get translated by the compiler.</p>
  
  <pre><code>from x in list
  let v = SomeComplexExpressionDependingOnx
  select v
  </code></pre>
  
  <p>(p.s. i know this could be reduced to just <code>select SomeComplexExpressionDependingOnx</code> but i want to know how this is done in general)</p>
  
  <p>Thanks!</p>