What is included with this book?
Troy Magennis is a Microsoft C# MVP and a keen traveler who currently works for Travelocity, which manages the travel and leisure websites travelocity.com, lastminute.com, and zuji. As Vice President of Architecture, he leads a talented team of architects spread across four continents, committed to being the traveler’s champion. Technology has always been a passion. After cutting his teeth on early 8-bit personal computers, Troy moved into electronic engineering (assembly language coding), which later led to positions in software application development and architecture for some of the most prominent corporations in automotive, banking, and online commerce. Troy’s first exposure to LINQ was in 2006 when he took a sabbatical to learn it and became hooked, ultimately leading him to publish the popular HookedOnLINQ website.
Foreword . . . x
Preface . . . xii
Acknowledgments . . . xix
About the Author . . . xx
Chapter 1: Introducing LINQ . . . 1
What Is LINQ? . . . 1
The (Almost) Current LINQ Story . . . 3
LINQ Code Makeover–Before and After Code Examples . . . 5
Benefits of LINQ . . . 12
Summary . . . 15
References . . . 15
Chapter 2: Introducing LINQ to Objects . . . 17
LINQ Enabling C# 3.0 Language Enhancements . . . 17
LINQ to Objects Five-Minute Overview . . . 30
Summary . . . 39
References . . . 39
Chapter 3: Writing Basic Queries . . . 41
Query Syntax Style Options . . . 41
How to Filter the Results (Where Clause) . . . 49
How to Change the Return Type (Select Projection) . . . 54
How to Return Elements When the Result Is a Sequence (Select Many) . . . 59
How to Get the Index Position of the Results . . . 61
How to Remove Duplicate Results . . . 62
How to Sort the Results . . . 63
Summary . . . 73
Chapter 4: Grouping and Joining Data . . . 75
How to Group Elements . . . 75
How to Join with Data in Another Sequence . . . 93
Summary . . . 119
Chapter 5: Standard Query Operators . . . 121
The Built-In Operators . . . 121
Aggregation Operators–Working with Numbers . . . 123
Conversion Operators–Changing Types . . . 131
Element Operators . . . 144
Equality Operator–SequenceEqual . . . 153
Generation Operators–Generating Sequences of Data . . . 155
Merging Operators . . . 159
Partitioning Operators–Skipping and Taking Elements . . . 160
Quantifier Operators–All, Any, and Contains . . . 164
Summary . . . 171
Chapter 6: Working with Set Data . . . 173
Introduction . . . 173
The LINQ Set Operators . . . 174
The HashSet<T> Class . . . 185
Summary . . . 192
Chapter 7: Extending LINQ to Objects . . . 195
Writing a New Query Operator . . . 195
Writing a Single Element Operator . . . 196
Writing a Sequence Operator . . . 208
Writing an Aggregate Operator . . . 216
Writing a Grouping Operator . . . 222
Summary . . . 232
Chapter 8: C# 4.0 Features . . . 233
Evolution of C# . . . 233
Optional Parameters and Named Arguments . . . 234
Dynamic Typing . . . 243
COM-Interop and LINQ . . . 251
Summary . . . 260
References . . . 260
Chapter 9: Parallel LINQ to Objects . . . 261
Parallel Programming Drivers . . . 261
Multi-Threading Versus Code Parallelism . . . 264
Parallelism Expectations, Hindrances, and Blockers . . . 267
LINQ Data Parallelism . . . 271
Writing Parallel LINQ Operators . . . 289
Summary . . . 301
References . . . 301
Glossary . . . 303
Index . . . 307
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.