C# in Depth (2012)
Part 1: Preparing for the journey
CHAPTER 1.The changing face of C# development
CHAPTER 2.Core foundations: building on C# 1
Part 2: C# 2: Solving the issues of C# 1
CHAPTER 3.Parameterized typing with generics
CHAPTER 4.Saying nothing with nullable types
CHAPTER 5.Fast-tracked delegates
CHAPTER 6.Implementing iterators the easy way
CHAPTER 7.Concluding C# 2: the final features
Part 3: C# 3: Revolutionizing data access
CHAPTER 8.Cutting fluff with a smart compiler
CHAPTER 9.Lambda expressions and expression trees/a>
CHAPTER 11.Query expressions and LINQ to Objects
CHAPTER 12.LINQ beyond collections
Part 4: C# 4: Playing nicely with others
CHAPTER 13.Minor changes to simplify code
CHAPTER 14.Dynamic binding in a static language
CHAPTER 15.Asynchrony with async/await
CHAPTER 16.C# 5 bonus features and closing thoughts
Appendix A.LINQ standard query operators
Appendix В.Generic collections in .NET