What I like about Paul Kimmel's LINQ Unleashed for C# is that he does not rush into explaining LINQ. Before explaining LINQ, Kimmel explains the new technologies that make LINQ possible.

He walks the reader through anonymous types, type initialization, extension methods, the yield return statement, lambda expressions, and closures - all features that were introduced in C#3.0 - before explaining how each of these features makes LINQ possible.

After building up to it, Kimmel steps through the syntax of LINQ, providing numerous code examples.

He begins with syntax to all implementations of LINQ; then dives into more detail about the major LINQ implementations: LINQ to SQL, LINQ to Objects, and LINQ to XML. In each section, he provides numerous helpful samples.

When I first opened this book, I was new to LINQ (Language Integrated Query) and had no grasp of how it works. This book got me up to speed. I recommend it for anyone learning LINQ.