If you use the features of .NET 4, then no, this will not work on .NET 2.
If you just want to use LINQ to Objects and other newer functions, then you should study LINQBridge , which is a port of LINQ to Objects for.NET 2. Then you can make Visual Studio target .NET 2 in your project properties, use LINQBridge libraries. and then your application should run on a .NET 2 computer.
Note that you can still use many functions from C # 3 and 4, such as lambda expressions (but not expression trees), automatically implemented properties, anonymous types, optional parameters and named arguments, etc. Obviously, everything will be available, although - dynamic does not work on .NET 2, for example.
source share