LINQ is an implementation though (LINQ-to-Objects even more so). Specific (ie. not the theoretical/abstract concept) implementations of query operators can be slow because of generating more computation than is actually needed to produce the result. Also even the theoretical performance of a query operator depends on the underlying collection, doing a search or filter on a sorted list for instance, it can benefit from performant concrete algorithms that take advantage of order (eg. binary search). But only if the implementation chooses to do so..