Queryable.AsQueryable 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
AsQueryable(IEnumerable) |
將 IEnumerable 轉換成 IQueryable。 |
AsQueryable<TElement>(IEnumerable<TElement>) |
將泛型 IEnumerable<T> 轉換成泛型 IQueryable<T>。 |
AsQueryable(IEnumerable)
將 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> 其會呼叫 中的 Enumerable 對等查詢運算子方法來執行查詢,而不是 中的 Queryable 方法。
這個方法假設 source
會針對某些 T
實 IEnumerable<T> 作 。 在執行時間,結果為相同 的 型 IQueryable<T> 別 T
。 當您未以靜態方式知道 的 T
型別時,這個方法在動態案例中很有用。
適用於
AsQueryable<TElement>(IEnumerable<TElement>)
將泛型 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> 其會呼叫 中的 Enumerable 對等查詢運算子方法來執行查詢,而不是 中的 Queryable 方法。
適用於
意見反應
https://aka.ms/ContentUserFeedback。
即將推出:在 2024 年,我們將隨著內容的意見反應機制逐步淘汰 GitHub 問題,並以新的意見反應系統來取代。 如需詳細資訊,請參閱提交並檢視相關的意見反應