Some software technologies provide developers with the ability to query in-memory data using a syntax that is similar to relational database queries. Objects implementing a standard enumerable interface may be used as an input data source for queries. A variety of chained query operators may be applied to the data sources to build up the query. Query operators may include, for example: (1) Filters (e.g., Where, Take, and Skip); (2) Projections (e.g., Select); (3) Reorderings (e.g., OrderBy and Reverse); (4) Reductions (e.g., First, Last, ElementAt, Min, Max, Count, Any, All, and Aggregate); and (5) Conversions (e.g., ToArray, ToList, ToLookup, and ToDictionary). Typical implementations of these operators are defined in terms of general-purpose interfaces for generality and not more efficient data source ones.