Regarding the let keyword; the following code:
var x = from post in posts
let keywords = post.split(' ')
...
Is compiled* into: var x = posts
.Select(post => new { keywords = post.split(' '), post })
...
* If you didn't know already, the compiler transforms query syntax into extension method syntax.