I just finished reading C# in Depth: What you need to master C# 2 and 3. Although the book is only 358 pages, it's title is certainly not exaggerated. It feels like I've read a 1000 page book. Jon Skeet has done a good job covering C# 2.0 and C#3.0, evolving the different language enhancements starting from C# 1.1.
I must admit that I've been quite passive when it comes to the new language features in C# 3.0 and especially when it comes to LINQ. I tried to avoid the hype as long as possible. Now that C# 3.0 has gone RTM for quite some time now and the dust has settled (before getting blown up again on the PDC next week), I decided to learn more about the language features in C# 3.0. That's the reason why I bought the book.
The first part covers C# 2.0, which had very little surprises. The last part covers the C# 3.0 language features (lambda expressions, expression trees, extension methods, etc. ...) and provides a concise introduction to LINQ.
The thing I appreciated the most while reading the book was the amount of detail provided about what the compiler does behind the scene. I am glad that I've learned what all the fuss is about so that I can finally start using some of the useful language extensions provided by the C# 3.0 compiler.
I guess this book is the best C# reference money can buy at the moment. If you want to have an in-depth knowledge of C#, then it's certainly no disappointment.