다음을 통해 공유


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인 경우

예제

다음 코드 예제에서는 를 사용하여 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 하는 을 생성합니다. 그런 다음 을 MethodCallExpression 매개 변수의 CreateQuery(Expression) 속성으로 나타내는 ProviderIQueryProvider 메서드에 source 전달합니다.

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

적용 대상