Queryable.OfType<TResult>(IQueryable) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee filtert u de elementen van een IQueryable op basis van een opgegeven type.
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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
public static System.Linq.IQueryable<TResult> OfType<TResult>(this System.Linq.IQueryable source);
static member OfType : System.Linq.IQueryable -> System.Linq.IQueryable<'Result>
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
static member OfType : System.Linq.IQueryable -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function OfType(Of TResult) (source As IQueryable) As IQueryable(Of TResult)
Type parameters
- TResult
Het type waarop de elementen van de reeks moeten worden gefilterd.
Parameters
- source
- IQueryable
Een IQueryable wiens elementen moeten worden gefilterd.
Retouren
Een verzameling die de elementen van source dat type TResultbevat.
- Kenmerken
Uitzonderingen
source is null.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe OfType u elementen filtert die niet van het type PropertyInfo zijn uit een lijst met elementen van het type MemberInfo.
// 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
Opmerkingen
De OfType methode genereert een MethodCallExpression die zichzelf aanroept OfType als een samengestelde algemene methode. Vervolgens wordt de MethodCallExpression methode doorgegeven aan de CreateQuery(Expression) methode van de IQueryProvider vertegenwoordigd door de Provider eigenschap van de source parameter.
Het querygedrag dat optreedt als gevolg van het uitvoeren van een expressiestructuur die aanroept OfType , is afhankelijk van de implementatie van het type source parameter. Het verwachte gedrag is dat hiermee alle elementen worden source gefilterd die niet van het type TResultzijn.