System.Linq.Queryable Class

Provides a set of static (Shared in Visual Basic) methods for querying data structures that implement System.Linq.IQueryable`1.

See Also: Queryable Members


public static class Queryable


The set of methods declared in the System.Linq.Queryable class provides an implementation of the standard query operators for querying data sources that implement System.Linq.IQueryable`1. The standard query operators are general purpose methods that follow the vbteclinq 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 System.Linq.IQueryable`1 type. This means they can be called like an instance method on any object that implements System.Linq.IQueryable`1. These methods that extend System.Linq.IQueryable`1 do not perform any querying directly. Instead, their functionality is to build an System.Linq.Expressions.Expression object, which is an expression tree that represents the cumulative query. The methods then pass the new expression tree to either the IQueryProvider.Execute``1(System.Linq.Expressions.Expression) method or the IQueryProvider.CreateQuery``1(System.Linq.Expressions.Expression) method of the input System.Linq.IQueryable`1. The method that is called depends on whether the System.Linq.Queryable method returns a singleton value, in which case IQueryProvider.Execute``1(System.Linq.Expressions.Expression) is called, or has enumerable results, in which case IQueryProvider.CreateQuery``1(System.Linq.Expressions.Expression) is called.

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

In addition to the standard query operator methods that operate on System.Linq.IQueryable`1 objects, this class also contains a method, erload:System.Linq.Queryable.AsQueryable, which types IEnumerable objects as System.Linq.IQueryable objects.


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