The ability to dynamically generate code can greatly increase the expressiveness of developers. Repetitive code can be eliminated and complex decisions be pushed back to configuration files that can be changed by business analysts. In the past .NET developers built dynamic code using Reflection.Emit or CodeDom, but with LINQ Expressions a lightweight alternative has become available.
Aaron Erickson introduces his new LINQ extension Indexes for Objects (i4o). Indexes for Objects allows for fast lookup against in-memory collections while retaining the LINQ syntax and semantics. He also discusses how expression trees interact with LINQ and how they can be leveraged in other scenarios.