Queryable.OfType<TResult>(IQueryable) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
根據指定的型別來篩選 IQueryable 的項目。
public:
generic <typename TResult>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IQueryable<TResult> ^ OfType(System::Linq::IQueryable ^ source);
public static System.Linq.IQueryable<TResult> OfType<TResult> (this System.Linq.IQueryable source);
static member OfType : System.Linq.IQueryable -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function OfType(Of TResult) (source As IQueryable) As IQueryable(Of TResult)
類型參數
- TResult
用來做為序列項目之篩選依據的類型。
參數
- source
- IQueryable
要篩選其項目的 IQueryable。
傳回
IQueryable<TResult>
集合,其中包含 source
中型別為 TResult
的項目。
例外狀況
source
為 null
。
範例
下列程式代碼範例示範如何使用 OfType
,從類型的專案清單中篩選出不是 類型的PropertyInfoMemberInfo專案。
// Create a list of MemberInfo objects.
List<System.Reflection.MemberInfo> members = typeof(String).GetMembers().ToList();
// Return only those items that can be cast to type PropertyInfo.
IQueryable<System.Reflection.PropertyInfo> propertiesOnly =
members.AsQueryable().OfType<System.Reflection.PropertyInfo>();
Console.WriteLine("Members of type 'PropertyInfo' are:");
foreach (System.Reflection.PropertyInfo pi in propertiesOnly)
Console.WriteLine(pi.Name);
/*
This code produces the following output:
Members of type 'PropertyInfo' are:
Chars
Length
*/
' Create a list of MemberInfo objects.
Dim members As List(Of System.Reflection.MemberInfo) = GetType(String).GetMembers().ToList()
' Return only those items that can be cast to type PropertyInfo.
Dim propertiesOnly As IQueryable(Of System.Reflection.PropertyInfo) = _
members.AsQueryable().OfType(Of System.Reflection.PropertyInfo)()
Dim output As New System.Text.StringBuilder
output.AppendLine("Members of type 'PropertyInfo' are:")
For Each pi As System.Reflection.PropertyInfo In propertiesOnly
output.AppendLine(pi.Name)
Next
' Display the output.
MsgBox(output.ToString())
' This code produces the following output:
' Members of type 'PropertyInfo' are:
' Chars
' Length
備註
方法 OfType
會產生 , MethodCallExpression 表示 OfType
呼叫本身做為建構的泛型方法。 然後,它會將 傳遞MethodCallExpression至 CreateQuery(Expression) 參數的 屬性所Provider表示的 source
方法IQueryProvider。
執行表示呼叫 OfType
的表達式樹狀結構所產生的查詢行為,取決於參數類型的 source
實作。 預期的行為是它會篩選出任何不是 類型TResult
的專案source
。