Queryable.AsQueryable Method

Definition

Overloads

AsQueryable(IEnumerable)

Преобразовывает коллекцию IEnumerable в объект IQueryable.Converts an IEnumerable to an IQueryable.

AsQueryable<TElement>(IEnumerable<TElement>)

Преобразовывает универсальный объект IEnumerable<T> в универсальный объект IQueryable<T>.Converts a generic IEnumerable<T> to a generic IQueryable<T>.

AsQueryable(IEnumerable)

Преобразовывает коллекцию IEnumerable в объект IQueryable.Converts an IEnumerable to an IQueryable.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable ^ AsQueryable(System::Collections::IEnumerable ^ source);
public static System.Linq.IQueryable AsQueryable (this System.Collections.IEnumerable source);
static member AsQueryable : System.Collections.IEnumerable -> System.Linq.IQueryable
<Extension()>
Public Function AsQueryable (source As IEnumerable) As IQueryable

Parameters

source
IEnumerable

Последовательность, подлежащая преобразованию.A sequence to convert.

Returns

IQueryable

Объект IQueryable, представляющий входную последовательность.An IQueryable that represents the input sequence.

Exceptions

Последовательность source не реализует объект IEnumerable<T> для некоторых типов T.source does not implement IEnumerable<T> for some T.

Параметр source равен null.source is null.

Remarks

Если тип source реализует IQueryable<T>, AsQueryable(IEnumerable) возвращает его напрямую.If the type of source implements IQueryable<T>, AsQueryable(IEnumerable) returns it directly. В противном случае возвращается IQueryable<T>, выполняющая запросы путем вызова эквивалентных методов оператора запроса в Enumerable, а не в Queryable.Otherwise, it returns an IQueryable<T> that executes queries by calling the equivalent query operator methods in Enumerable instead of those in Queryable.

В этом методе предполагается, что source реализует IEnumerable<T> для некоторых T.This method assumes that source implements IEnumerable<T> for some T. Во время выполнения результат имеет тип IQueryable<T> для того же T.At runtime, the result is of type IQueryable<T> for the same T. Этот метод полезен в динамических сценариях, если не имеет статического знания о типе T.This method is useful in dynamic scenarios when you do not statically know the type of T.

AsQueryable<TElement>(IEnumerable<TElement>)

Преобразовывает универсальный объект IEnumerable<T> в универсальный объект IQueryable<T>.Converts a generic IEnumerable<T> to a generic IQueryable<T>.

public:
generic <typename TElement>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TElement> ^ AsQueryable(System::Collections::Generic::IEnumerable<TElement> ^ source);
public static System.Linq.IQueryable<TElement> AsQueryable<TElement> (this System.Collections.Generic.IEnumerable<TElement> source);
static member AsQueryable : seq<'Element> -> System.Linq.IQueryable<'Element>
<Extension()>
Public Function AsQueryable(Of TElement) (source As IEnumerable(Of TElement)) As IQueryable(Of TElement)

Type Parameters

TElement

Тип элементов source.The type of the elements of source.

Parameters

source
IEnumerable<TElement>

Последовательность, подлежащая преобразованию.A sequence to convert.

Returns

IQueryable<TElement>

Объект IQueryable<T>, представляющий входную последовательность.An IQueryable<T> that represents the input sequence.

Exceptions

Параметр source равен null.source is null.

Examples

В следующем примере кода показано, как использовать AsQueryable<TElement>(IEnumerable<TElement>) для преобразования IEnumerable<T> в IQueryable<T>.The following code example demonstrates how to use AsQueryable<TElement>(IEnumerable<TElement>) to convert an IEnumerable<T> to an IQueryable<T>.

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
*/
Dim grades As New List(Of Integer)(New Integer() {78, 92, 100, 37, 81})

' Convert the List to an IQueryable<int>.
Dim iqueryable As IQueryable(Of Integer) = grades.AsQueryable()

' Get the Expression property of the IQueryable object.
Dim expressionTree As System.Linq.Expressions.Expression = _
    iqueryable.Expression

MsgBox("The NodeType of the expression tree is: " _
    & expressionTree.NodeType.ToString())
MsgBox("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

Если тип source реализует IQueryable<T>, AsQueryable<TElement>(IEnumerable<TElement>) возвращает его напрямую.If the type of source implements IQueryable<T>, AsQueryable<TElement>(IEnumerable<TElement>) returns it directly. В противном случае возвращается IQueryable<T>, выполняющая запросы путем вызова эквивалентных методов оператора запроса в Enumerable, а не в Queryable.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