Queryable.OfType<TResult>(IQueryable) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Öğesinin IQueryable öğelerini belirtilen türe göre filtreler.
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)
Tür Parametreleri
- TResult
Dizinin öğelerinin filtreleneceği tür.
Parametreler
- source
- IQueryable
Öğelerinin IQueryable filtreleneceği bir.
Döndürülenler
türüne TResultsahip öğeleri source içeren bir koleksiyon.
Özel durumlar
source, null değeridir.
Örnekler
Aşağıdaki kod örneği, türündeki öğeler listesinden türünde PropertyInfo olmayan öğeleri MemberInfofiltrelemek için nasıl kullanılacağını OfType gösterir.
// 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
Açıklamalar
yöntemi, OfType kendisini oluşturulan genel bir MethodCallExpression yöntem olarak çağıran OfType bir oluşturur. Ardından parametresinin MethodCallExpressionCreateQuery(Expression) özelliği tarafından temsil edilen yöntemine IQueryProviderProvidersource iletir.
Çağrıyı OfType temsil eden bir ifade ağacının yürütülmesi sonucunda oluşan sorgu davranışı, parametre türünün uygulanmasına source bağlıdır. Beklenen davranış, içindeki source türünde TResultolmayan öğeleri filtrelemesidir.