This documentation is archived and is not being maintained.

Queryable Class

Provides a set of static (Shared in Visual Basic) methods for querying data structures that implement IQueryable<T>.

Namespace:  System.Linq
Assembly:  System.Core (in System.Core.dll)

public static class Queryable

The set of methods declared in the Queryable class provides an implementation of the standard query operators for querying data sources that implement IQueryable<T>. The standard query operators are general purpose methods that follow the LINQ pattern and enable you to express traversal, filter, and projection operations over data in any .NET-based programming language.

The majority of the methods in this class are defined as extension methods that extend the IQueryable<T> type. This means they can be called like an instance method on any object that implements IQueryable<T>. These methods that extend IQueryable<T> do not perform any querying directly. Instead, their functionality is to build an Expression object, which is an expression tree that represents the cumulative query. The methods then pass the new expression tree to either the Execute<TResult>(Expression) method or the CreateQuery<TElement>(Expression) method of the input IQueryable<T>. The method that is called depends on whether the Queryable method returns a singleton value, in which case Execute<TResult>(Expression) is called, or has enumerable results, in which case CreateQuery<TElement>(Expression) is called.

The actual query execution on the target data is performed by a class that implements IQueryable<T>. The expectation of any IQueryable<T> implementation is that the result of executing an expression tree that was constructed by a Queryable standard query operator method is equivalent to the result of calling the corresponding method in the Enumerable class, if the data source were an IEnumerable<T>.

In addition to the standard query operator methods that operate on IQueryable<T> objects, this class also contains a method, AsQueryable, which types IEnumerable objects as IQueryable objects.


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5