Evaluate

Apply a specification to an in memory collection.

Example

First, a Specification can be defined to filter a given type. In this case, a specification that filters strings using a Contains clause.

public class StringsWhereValueContainsSpec : Specification<string>
{
    public StringsWhereValueContainsSpec(string filter)
    {
        Query.Where(s => s.Contains(filter));
    }
}

You can apply the Specification above to an in memory collection using the Evaluate method. This method takes an IEnumerable<T> as a parameter representing the collection to apply the specification. A brief example is demonstrated below.

var trainingResources = new[]
{
    "Articles",
    "Blogs",
    "Documentation",
    "Pluralsight",
};

var specification = new StringsWhereValueContainsSpec("ti");

var results = specification.Evaluate(trainingResources);

The result of Evaluate should be a collection of strings containing “Articles” and “Documentation”. For additional information on Evaluate refer to the Specifications with In Memory Collections guide.