Chapter 11. Language Integrated Query


  • Traditional queries across objects using List<T>

  • Extension methods

  • LINQ query operators

  • Parallel LINQ

  • Expression trees

LINQ (Language Integrated Query) integrates query syntax inside the C# programming language and makes it possible to access different data sources with the same syntax. LINQ makes this possible by offering an abstraction layer.

This chapter gives you the core foundation of LINQ and the language extensions for C# that make the new features possible.


For using LINQ across the database you should read Chapter 31, "ADO.NET Entity Framework." To query XML data, read Chapter 33, "Manipulating XML," after reading this chapter.


This chapter starts with a simple LINQ query before diving into the full potential of LINQ. The C# language offers integrated query language that is converted to method calls. This section shows you what the conversion looks like so you can use all the possibilities of LINQ.

Lists and Entities

The LINQ queries in this chapter will be done on a collection containing Formula-1 champions from 1950 to 2008. This data needs to be prepared with entity classes and lists.

For the entities, the type Racer is defined. Racer defines several properties and an overloaded ToString() method to display a racer in a string format. This class implements the interface IFormattable to support different variants of format strings, and the interface IComparable<Racer>, which can be used to sort a list ...

Get Professional C# 4 and .NET 4 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.