Bindings with the let Clause

Often, you’ll find it handy to carry out intermediate computations within a query expression, binding the result to an identifier within the query expression. An example is worth a thousand words:

var res = from i in Enumerable.Range(0, 10)          let square = i * i          where square % 2 == 0          let cube = i * square          let stars = new string('*', i)          select new { Stars = stars, Cube = cube };

Starting from the source selection, we get a sequence of integral numbers 0 through 9 (the parameter 10 indicates the count) from the Range method on Enumerable. Now we’re asked to compute the square of the number, filter out even square values, compute the cube, and so ...

Get C# 5.0 Unleashed now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.