Queryable.AsQueryable Метод

Определение

Перегрузки

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

Параметры

source
IEnumerable

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

Возвраты

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

Исключения

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

sourcenull.source is null.

Комментарии

Если тип 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 предполагается, Tчто реализует IEnumerable<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)

Параметры типа

TElement

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

Параметры

source
IEnumerable<TElement>

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

Возвраты

IQueryable<TElement>

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

Исключения

Свойство source имеет значение null.source is null.

Примеры

В следующем примере кода показано, как использовать 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

Комментарии

Если тип 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.

Применяется к