coveo::linq
Implementation of .NET-like LINQ operators in C++
|
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. | |
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.