You’ll see from the preview information out there that Revit 2010 requires .NET3.5 . There wasn’t anything stopping you from using .NET3.5 with the Revit API in previous releases, but now it’s official there isn’t any excuses not to use one of the coolest aspects of .NET3* .
LINQ or .NET Language Integrated Query is a great way to simplify your code and query the Revit database with a powerful and simple syntax. In conjunction with extension methods there is some real opportunity to make your code look even more beautiful ;-) Here’s a little very simple example (who can spot the extension method)
var mydoors = from door in Document.Elements<FamilyInstance>(BuiltInCategory.OST_Doors)
where door.get_Parameter("Width").AsDouble() <= 3.45
select new Door(door);
The big question I’m only just starting to look at is performance, particularly compared to parameter filters. LINQ is certainly a power tool even if you don’t use it in conjunction with the Revit API.