Queryable.AsQueryable 方法  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
| AsQueryable(IEnumerable) | 将 IEnumerable 转换为 IQueryable。 | 
| AsQueryable<TElement>(IEnumerable<TElement>) | 将泛型 IEnumerable<T> 转换为泛型 IQueryable<T>。 | 
AsQueryable(IEnumerable)
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
将 IEnumerable 转换为 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
要转换的序列。
返回
一个 IQueryable,表示输入序列。
例外
              source 未为某些 T 实现 IEnumerable<T>。
              source 为 null。
注解
如果 的类型 source 实现 IQueryable<T>, AsQueryable(IEnumerable) 则直接返回它。 否则,它将返回一个 IQueryable<T> ,它通过调用 中的等效查询运算符方法而不是 中的EnumerableQueryable方法来执行查询。
此方法假定 source 为某些 T实现IEnumerable<T>。 在运行时,结果的类型 IQueryable<T> 相同 T。 当你不静态地知道 的类型 T时,此方法在动态方案中很有用。
适用于
AsQueryable<TElement>(IEnumerable<TElement>)
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
将泛型 IEnumerable<T> 转换为泛型 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 的元素类型。
参数
- source
- IEnumerable<TElement>
要转换的序列。
返回
一个 IQueryable<T>,表示输入序列。
例外
              source 为 null。
示例
下面的代码示例演示如何使用 AsQueryable<TElement>(IEnumerable<TElement>) 将 转换为 IEnumerable<T>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>) 则直接返回它。 否则,它将返回一个 IQueryable<T> ,它通过调用 中的等效查询运算符方法而不是 中的EnumerableQueryable方法来执行查询。