Enumerable.AsEnumerable<TSource>(IEnumerable<TSource>) 메서드

정의

IEnumerable<T>로 형식화된 입력을 반환합니다.

public static System.Collections.Generic.IEnumerable<TSource> AsEnumerable<TSource> (this System.Collections.Generic.IEnumerable<TSource> source);

형식 매개 변수

TSource

source 요소의 형식입니다.

매개 변수

source
IEnumerable<TSource>

IEnumerable<T>로 형식화할 시퀀스입니다.

반환

IEnumerable<TSource>

IEnumerable<T>로 형식화된 입력 시퀀스입니다.

예제

다음 코드 예제에서는 표준 쿼리 연산자 구현이 필요한 경우 를 사용하여 AsEnumerable<TSource>(IEnumerable<TSource>) 형식의 사용자 지정 Where 메서드를 숨기는 방법을 보여 줍니다.

// Custom class.
class Clump<T> : List<T>
{
    // Custom implementation of Where().
    public IEnumerable<T> Where(Func<T, bool> predicate)
    {
        Console.WriteLine("In Clump's implementation of Where().");
        return Enumerable.Where(this, predicate);
    }
}

static void AsEnumerableEx1()
{
    // Create a new Clump<T> object.
    Clump<string> fruitClump =
        new Clump<string> { "apple", "passionfruit", "banana",
            "mango", "orange", "blueberry", "grape", "strawberry" };

    // First call to Where():
    // Call Clump's Where() method with a predicate.
    IEnumerable<string> query1 =
        fruitClump.Where(fruit => fruit.Contains("o"));

    Console.WriteLine("query1 has been created.\n");

    // Second call to Where():
    // First call AsEnumerable() to hide Clump's Where() method and thereby
    // force System.Linq.Enumerable's Where() method to be called.
    IEnumerable<string> query2 =
        fruitClump.AsEnumerable().Where(fruit => fruit.Contains("o"));

    // Display the output.
    Console.WriteLine("query2 has been created.");
}

// This code produces the following output:
//
// In Clump's implementation of Where().
// query1 has been created.
//
// query2 has been created.

설명

메서드는 AsEnumerable<TSource>(IEnumerable<TSource>) 를 구현 IEnumerable<T> 하는 형식에서 자체로 컴파일 시간 형식 source 을 변경하는 것 IEnumerable<T> 외에는 효과가 없습니다.

AsEnumerable<TSource>(IEnumerable<TSource>) 는 시퀀스가 구현 IEnumerable<T> 될 때 쿼리 구현 중에서 선택할 수 있지만 다른 공용 쿼리 메서드 집합을 사용할 수도 있습니다. 예를 들어 , SelectManySelect및 와 같은 Where고유한 메서드를 구현 IEnumerable<T> 하고 포함하는 제네릭 클래스 Table 가 지정된 경우 에 대한 Where 호출은 의 Tablepublic Where 메서드를 호출합니다. Table 데이터베이스 테이블을 나타내는 형식에는 조건자 인수를 식 트리로 사용하고 원격 실행을 위해 트리를 SQL로 변환하는 메서드가 있을 Where 수 있습니다. 예를 들어 조건자가 로컬 메서드를 호출하기 때문에 원격 실행을 원하지 않는 경우 메서드를 사용하여 사용자 지정 메서드 AsEnumerable 를 숨기고 대신 표준 쿼리 연산자를 사용할 수 있도록 할 수 있습니다.

적용 대상

제품 버전
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0