C H A P T E R 12
LINQ to Objects
Regardless of the type of application you are creating using the .NET platform, your program will
certainly need to access some form of data as it executes. To be sure, data can be found in numerous
locations, including XML files, relational databases, in-memory collections, and primitive arrays.
Historically speaking, based on the location of said data, programmers needed to make use of very
different and unrelated APIs. The Language Integrated Query (LINQ) technology set, introduced initially
in .NET 3.5, provides a concise, symmetrical, and strongly typed manner to access a wide variety of data
stores. In this chapter, you will begin your investigation of LINQ, by focusing on LINQ to Objects.
Before you dive into LINQ to Objects proper, the first part of this chapter quickly reviews the key C#
programming constructs that enable LINQ. As you work through this chapter, you will find that
implicitly typed local variables, object initialization syntax, lambda expressions, extension methods, and
anonymous types will be quite useful (if not occasionally mandatory).
After this supporting infrastructure is reviewed, the remainder of the chapter will introduce you to
the LINQ programm