Queryable.AsQueryable Method

Definition

Overloads

AsQueryable(IEnumerable)

Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs

Converts an IEnumerable to an IQueryable.

C#
public static System.Linq.IQueryable AsQueryable(this System.Collections.IEnumerable source);

Parameters

source
IEnumerable

A sequence to convert.

Returns

An IQueryable that represents the input sequence.

Exceptions

source does not implement IEnumerable<T> for some T.

source is null.

Remarks

If the type of source implements IQueryable<T>, AsQueryable(IEnumerable) returns it directly. Otherwise, it returns an IQueryable<T> that executes queries by calling the equivalent query operator methods in Enumerable instead of those in Queryable.

This method assumes that source implements IEnumerable<T> for some T. At runtime, the result is of type IQueryable<T> for the same T. This method is useful in dynamic scenarios when you do not statically know the type of T.

Applies to

.NET 9 and other versions
Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

AsQueryable<TElement>(IEnumerable<TElement>)

Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs

Converts a generic IEnumerable<T> to a generic IQueryable<T>.

C#
public static System.Linq.IQueryable<TElement> AsQueryable<TElement>(this System.Collections.Generic.IEnumerable<TElement> source);

Type Parameters

TElement

The type of the elements of source.

Parameters

source
IEnumerable<TElement>

A sequence to convert.

Returns

IQueryable<TElement>

An IQueryable<T> that represents the input sequence.

Exceptions

source is null.

Examples

The following code example demonstrates how to use AsQueryable<TElement>(IEnumerable<TElement>) to convert an IEnumerable<T> to an IQueryable<T>.

C#
List<int> grades = new List<int> { 78, 92, 100, 37, 81 };

// Convert the List to an IQueryable<int>.
IQueryable<int> iqueryable = grades.AsQueryable();

// Get the Expression property of the IQueryable object.
System.Linq.Expressions.Expression expressionTree =
    iqueryable.Expression;

Console.WriteLine("The NodeType of the expression tree is: "
    + expressionTree.NodeType.ToString());
Console.WriteLine("The Type of the expression tree is: "
    + expressionTree.Type.Name);

/*
    This code produces the following output:

    The NodeType of the expression tree is: Constant
    The Type of the expression tree is: EnumerableQuery`1
*/

Remarks

If the type of source implements IQueryable<T>, AsQueryable<TElement>(IEnumerable<TElement>) returns it directly. Otherwise, it returns an IQueryable<T> that executes queries by calling the equivalent query operator methods in Enumerable instead of those in Queryable.

Applies to

.NET 9 and other versions
Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0