Queryable.OfType<TResult>(IQueryable) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Memfilter elemen berdasarkan IQueryable jenis tertentu.
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)
Jenis parameter
- TResult
Jenis untuk memfilter elemen urutan.
Parameter
- source
- IQueryable
Elemen IQueryable yang akan difilter.
Mengembalikan
Koleksi yang berisi elemen dari source
yang memiliki jenis TResult
.
Pengecualian
source
adalah null
.
Contoh
Contoh kode berikut menunjukkan cara menggunakan OfType
untuk memfilter elemen yang tidak berjenis PropertyInfo dari daftar elemen jenis 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
Keterangan
Metode ini OfType
menghasilkan MethodCallExpression yang mewakili pemanggilan OfType
dirinya sebagai metode generik yang dibangun. Kemudian meneruskan MethodCallExpression ke CreateQuery(Expression) metode dari yang diwakili IQueryProvider oleh Provider properti source
parameter .
Perilaku kueri yang terjadi sebagai akibat dari menjalankan pohon ekspresi yang mewakili panggilan OfType
tergantung pada implementasi jenis source
parameter. Perilaku yang diharapkan adalah bahwa ia memfilter elemen apa pun yang source
tidak berjenis TResult
.