title: Code equivalent to the 'let' keyword in chained LINQ extension method calls
body: <p>Using the C# compilers query comprehension features, you can write code like:</p>
  
  <pre><code>var names = new string[] { "Dog", "Cat", "Giraffe", "Monkey", "Tortoise" };
  var result =
      from animalName in names
      let nameLength = animalName.Length
      where nameLength &gt; 3
      orderby nameLength
      select animalName; 
  </code></pre>
  
  <p>In the query expression above, the <code>let</code> keyword allows a value to be passed forward to the where and orderby operations without duplicate calls to <code>animalName.Length</code>.</p>
  
  <p>What is the equivalent set of LINQ extension method calls that achieves what the "let" keyword does here?</p>