LINQ (C# 3.0)
LINQ allows you to write structured type-safe queries over local object collections and remote data sources. LINQ is a new feature of C# 3.0 and .NET Framework 3.5.
LINQ lets you query any collection implementing IEnumerable<>
, whether an array, list, XML DOM, or remote data source
(such as a table in SQL Server). LINQ offers the benefits of both compile-time type checking
and dynamic query composition.
Note
A good way to experiment with LINQ is to download LINQPad at www.linqpad.net. LINQPad lets you interactively query local collections and SQL databases in LINQ without any setup.
LINQ Fundamentals
The basic units of data in LINQ are sequences and
elements. A sequence is any object that implements the generic
IEnumerable
interface and an element is each item in
the sequence. In the following example, names
is a
sequence, and Tom, Dick
, and Harry
are elements:
string[] names = { "Tom", "Dick", "Harry" };
A sequence such as this we call a local sequence because it represents a local collection of objects in memory.
A query operator is a method that transforms a sequence. A
typical query operator accepts an input sequence and emits a
transformed output sequence. In the Enumerable
class in System.Linq
, there are
around 40 query operators; all implemented as static extension
methods. These are called standard query operators.
Note
LINQ also supports sequences that can be dynamically fed from a remote data source such as a SQL Server. These sequences additionally implement the ...
Get C# 3.0 Pocket Reference, 2nd Edition 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.