次の方法で共有


Queryable.OfType<TResult>(IQueryable) メソッド

定義

指定された型に基づいて IQueryable の要素をフィルター処理します。

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)

型パラメーター

TResult

シーケンスの要素をフィルター処理する型。

パラメーター

source
IQueryable

フィルター処理する要素を含む IQueryable

戻り値

IQueryable<TResult>

source 型を持つ、TResult の要素を含むコレクション。

例外

sourcenullです。

次のコード例では、 を使用 OfType して、 型の要素の一覧から型 PropertyInfo 以外の要素を除外する方法を示します 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

注釈

メソッドは OfTypeMethodCallExpression 構築されたジェネリック メソッドとして自身を呼び出すことを OfType 表す を生成します。 次に、 パラメーターの MethodCallExpressionCreateQuery(Expression) プロパティで表される の IQueryProvider メソッドに をProvidersource渡します。

呼び出し OfType を表す式ツリーを実行した結果として発生するクエリ動作は、 パラメーターの型の source 実装によって異なります。 予期される動作は、 型TResultではない 内のすべてのsource要素をフィルター処理することです。

適用対象