Прочитать на английском

Поделиться через


Queryable.AsQueryable Метод

Определение

Перегрузки

AsQueryable(IEnumerable)

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

AsQueryable<TElement>(IEnumerable<TElement>)

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

AsQueryable(IEnumerable)

Исходный код:
Queryable.cs
Исходный код:
Queryable.cs
Исходный код:
Queryable.cs

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

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

Параметры

source
IEnumerable

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

Возвращаемое значение

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

Исключения

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

source имеет значение null.

Комментарии

Если тип source реализует IQueryable<T>, AsQueryable(IEnumerable) возвращает его напрямую. В противном случае он возвращает IQueryable<T> объект , который выполняет запросы путем вызова эквивалентных методов оператора запроса вместо Enumerable методов в Queryable.

Этот метод предполагает, что source реализует для некоторых TIEnumerable<T> . Во время выполнения результат имеет тип IQueryable<T> для того же T. Этот метод полезен в динамических сценариях, когда статически не известен тип T.

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

.NET 9 и другие версии
Продукт Версии
.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>)

Исходный код:
Queryable.cs
Исходный код:
Queryable.cs
Исходный код:
Queryable.cs

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

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

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

TElement

Тип элементов source.

Параметры

source
IEnumerable<TElement>

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

Возвращаемое значение

IQueryable<TElement>

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

Исключения

source имеет значение null.

Примеры

В следующем примере кода показано, как использовать AsQueryable<TElement>(IEnumerable<TElement>) для преобразования в IEnumerable<T>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
*/

Комментарии

Если тип source реализует IQueryable<T>, AsQueryable<TElement>(IEnumerable<TElement>) возвращает его напрямую. В противном случае он возвращает IQueryable<T> объект , который выполняет запросы путем вызова эквивалентных методов оператора запроса вместо Enumerable методов в Queryable.

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

.NET 9 и другие версии
Продукт Версии
.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