I've been on a mad dash reading a number of .NET 3.5 books recently to catch up with the new technology.
Just got done reading LINQ in Action and it's an excellent read. Rarely do I read books cover to cover, but this book definitely made me want to go through the whole thing as it's full of little gems of information, things I didn't know and lots of new ideas I can hopefully apply soon.
||LINQ in Action|
by Fabrice Marguerie, Steve Eichert, Jim Wooley
Manning Publications (February 4, 2008)
I've been using LINQ quite a bit in a few internal projects here and while it's a joy to use LINQ in general, it's definitely a complex piece of technology. Sure the obvious things are easy, but reading about a ton of different uses for LINQ and how LINQ can be applied to different programming problems is really enlightening at least for me. There are lots of little Aha lamps that have been going off looking through some of the examples in the book.
The book also does an excellent job in describing the technology and the technology behind LINQ. The description of deferred loading and how IEnumarable<T> figures into all of this (and which I find is one of the first issues most beginners run into) is among the best I've seen. Along the same lines the discussion of how IQueryable<T> and expression trees work - which is something I've not had the time to look into in detail myself - is just plain excellent as are the examples in the latter part of the book that take advantage of Expression tree parsing to create a custom provider. There are also excellent discussions of Lambda expressions and creation of custom expressions that are easy to follow and understand (which is not the case with most online material I've looked at before). In that sense the book actually serves as a good introduction to most of the new C# 3.0 and VB 9.0 features.
The book also has mentions a lot of tips and gotchas and there are a number of performance topics that compare different approach LINQ and 'classic'. While nothing compares to profiling your own code in your own scenarios a general heads up of comparative performance is very useful.
I read LINQ in Action cover to cover as I was recovering from being sick and it's very easy to stay with this book and actually go through the whole thing which I think is a worthwhile exercise. I rarely read books cover to cover, but in this case there was enough useful information to keep me going through. Rare indeed, but I also think that you can't look at enough LINQ examples to get some good ideas on how to apply this technology.
Definitely worthwhile... check it out.