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 TResult
sahip öğ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 TResult
olmayan öğeleri filtrelemesidir.