coveo::linq
Implementation of .NET-like LINQ operators in C++
Modules
LINQ operators

Information and reference of LINQ operators. More...

Modules

 List of built-in LINQ operators
 Reference for all built-in LINQ operators.
 
 Implementing custom LINQ operators
 How to design and implement your own LINQ operators.
 

Detailed Description

A LINQ operator is designed to accept a sequence as input, perform some specific task with it and return a result, which is usually (but not necessarily) another sequence. For example, a LINQ operator might filter the elements of a sequence to remove unwanted ones, or it could concatenate the sequence with another. Some LINQ operators are inspired by database operations, like coveo::linq::join(), but not all of them have an equivalent in the database world.

Some LINQ operators are identified as terminal. This means that they return a result that is not a sequence, but a single value. Because of this, they can only appear at the end of a LINQ expression, since no other operator can be chained after them.

In the coveo::linq library, LINQ operators are implemented as functions that return a function object implementing the operator logic. The function object is then applied to the sequence by coveo::linq::operator|(). For more information on this and on how to develop custom LINQ operators, see Implementing custom LINQ operators.

The coveo::linq library includes many different operators for various needs. Most of them are inspired by a corresponding operator in the .NET library, although usage is often different. For a list of operators, see List of built-in LINQ operators.