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>

형식이 sourceTResult의 요소가 들어 있는 컬렉션입니다.

예외

source이(가) null인 경우

예제

다음 코드 예제에서는 형식MemberInfo이 아닌 요소를 형식 PropertyInfo 의 요소 목록에서 필터링하는 방법을 OfType 보여 줍니다.

// 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

설명

메서드는 OfType 생성된 제네릭 메서드로 자신을 호출 OfType 하는 것을 나타내는 값을 생성 MethodCallExpression 합니다. 그런 다음 매개 변수의 IQueryProvider 속성이 나타내는 메서드에 Provider source 전달 MethodCallExpression CreateQuery(Expression) 합니다.

호출 OfType 을 나타내는 식 트리를 실행한 결과로 발생하는 쿼리 동작은 매개 변수 형식 source 의 구현에 따라 달라집니다. 예상되는 동작은 형식TResult이 아닌 모든 요소를 source 필터링하는 것입니다.

적용 대상