Chapter 1. The changing face of C# development
Listing 1.1. The Product type (C# 1)
Listing 1.2. Strongly typed collections and private setters (C# 2)
Listing 1.3. Automatically implemented properties and simpler initialization (C# 3)
Listing 1.4. Named arguments for clear initialization code (C# 4)
Listing 1.5. Sorting an ArrayList using IComparer (C# 1)
Listing 1.6. Sorting a List<Product> using IComparer<Product> (C# 2)
Listing 1.7. Sorting a List<Product> using Comparison<Product> (C# 2)
Listing 1.8. Sorting using Comparison<Product> from a lambda expression (C# 3)
Listing 1.9. Ordering a List<Product> using an extension method (C# 3)
Listing 1.10. Looping, testing, printing out (C# 1)
Listing 1.11. Separating testing from printing (C# 2)
Listing 1.12. Separating testing from printing redux (C# 2)
Listing 1.13. Testing with a lambda expression (C# 3)
Listing 1.14. Displaying products with an unknown price (C# 3)
Listing 1.15. First steps with query expressions: filtering a collection
Listing 1.16. Joining, filtering, ordering, and projecting (C# 3)
Listing 1.17. Complex processing of an XML file with LINQ to XML (C# 3)
Listing 1.18. Applying a query expression to a SQL database (C# 3)
Listing 1.19. Saving data to Excel using COM (C# 4)
Listing 1.20. Running IronPython and extracting properties dynamically (C# 4)
Chapter 2. Core foundations: building on C# 1
Listing 2.1. Using delegates in a variety of simple ways
Listing 2.2. Demonstrating a type-unsafe system with C code