That requires the .NET 3.0 compiler to work, which was my point: LINQ is largely a compile-time feature.
No, the features that were used to build LINQ were added to C#. LINQ was then built using them, and those same features are available to you to build anything similar.