Table of Contents

Where()

IEnumerable<T> Where<T>(this IEnumerable<T> enumerable, SpecBase<TModel, TMetadata> spec)

The Where() extension method overload is used to filter a collection of values based on an existing specification.

IEnumerable<int> evenNumbers = Enumerable
    .Range(1, 10)
    .Where(new IsEvenProposition());  // [ 2, 4, 6, 8, 10 ]

It serves as syntactic sugar for the following code:

var isEven = new IsEvenProposition();
IEnumerable<int> evenNumbers = Enumerable
    .Range(1, 10)
    .Where(n => isEven.Evaluate(n));  // [ 2, 4, 6, 8, 10 ]