从理论上讲,LINQ只不过是语法糖,而得到的IL代码应该与.NET 2.0中的代码相同.
如何在不使用.NET 3.5库的情况下编写LINQ?它会在.NET 2.0上运行吗?...基本上,任何只有"语法糖"的东西和新的编译器(C#3.0,VB 9.0)都会发布兼容2.0的IL.这包括LINQ使用的许多功能,例如匿名类,作为匿名委托的lambdas,自动属性,对象初始值设定项和集合初始值设定项...到对象依赖于IEnumerable扩展和几个委托声明(中Action和Func家庭),并已在实施LINQBridge(如mausch提到).LINQ to XML和LINQ to DataSets依赖于...但是,您必须实现一些自己的LINQ方法.
LINQ使用合成转换将查询转换为可执行代码.基本上,它将采用这样的代码:
?...上实现为扩展方法(也有一堆方法也适用于数据集).