Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Queryable.OfType<TResult>(IQueryable)

 

Data di pubblicazione: ottobre 2016

Filtra gli elementi di un IQueryable in base a un tipo specificato.

Spazio dei nomi:   System.Linq
Assembly:  System.Core (in System.Core.dll)

public static IQueryable<TResult> OfType<TResult>(
	this IQueryable source
)

Parametri

source
Type: System.Linq.IQueryable

Un IQueryable cui filtrare gli elementi.

Valore restituito

Type: System.Linq.IQueryable<TResult>

Una raccolta che contiene gli elementi da source che sono di tipo TResult.

Parametri tipo

TResult

Il tipo in base al quale filtrare gli elementi della sequenza.

Exception Condition
ArgumentNullException

source è null.

Il OfType metodo genera un MethodCallExpression che rappresenta una chiamata OfType stesso come un metodo generico costruito. Passa quindi il MethodCallExpression per il CreateQuery(Expression) metodo il IQueryProvider rappresentato dal Provider proprietà del source parametro.

Il comportamento della query che si verifica in seguito all'esecuzione di una struttura ad albero dell'espressione che rappresenta una chiamata OfType dipende dall'implementazione del tipo di source parametro. Il comportamento previsto è che esclude tutti gli elementi in source che non sono di tipo TResult.

Esempio di codice seguente viene illustrato come utilizzare OfType per filtrare gli elementi che non sono di tipo PropertyInfo da un elenco di elementi di tipo 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
*/

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.1
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: