정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Enumerable.SelectMany<TSource, TCollection, TResult> 메서드 (IEnumerable<TSource>, Func<TSource, Int32, IEnumerable<TCollection>>, Func<TSource, TCollection, TResult>)

2013-12-13

시퀀스의 각 요소를 IEnumerable<T>로 투영하고, 결과 시퀀스를 단일 시퀀스로 평면화한 다음 포함된 각 요소에 대해 결과 선택기 함수를 호출합니다. 각 소스 요소의 인덱스는 해당 요소의 투영된 중간 폼에 사용됩니다.

Namespace:  System.Linq
어셈블리:  System.Core(System.Core.dll)

public static IEnumerable<TResult> SelectMany<TSource, TCollection, TResult>(
	this IEnumerable<TSource> source,
	Func<TSource, int, IEnumerable<TCollection>> collectionSelector,
	Func<TSource, TCollection, TResult> resultSelector
)

형식 매개 변수

TSource

source의 요소 형식입니다.

TCollection

collectionSelector에서 수집되는 중간 요소의 형식입니다.

TResult

결과 시퀀스의 요소 형식입니다.

매개 변수

source
형식: System.Collections.Generic.IEnumerable<TSource>
프로젝션할 값 시퀀스입니다.
collectionSelector
형식: System.Func<TSource, Int32, IEnumerable<TCollection>>
각 소스 요소에 적용할 변형 함수입니다. 이 함수의 두 번째 매개 변수는 소스 요소의 인덱스를 나타냅니다.
resultSelector
형식: System.Func<TSource, TCollection, TResult>
중간 시퀀스의 각 요소에 적용할 변형 함수입니다.

반환 값

형식: System.Collections.Generic.IEnumerable<TResult>
포함하는 요소가 source의 각 요소에 대해 일대다 변형 함수 collectionSelector를 호출한 다음 이러한 시퀀스 요소와 해당 소스 요소를 각각 결과 요소에 매핑한 결과인 IEnumerable<T>입니다.

사용 정보

Visual Basic 및 C#에서는 이 메서드를 IEnumerable<TSource> 형식의 모든 개체에서 인스턴스 메서드로 호출할 수 있습니다. 인스턴스 메서드 구문을 사용하여 이 메서드를 호출할 경우에는 첫 번째 매개 변수를 생략합니다.

예외조건
ArgumentNullException

source 또는 collectionSelector 또는 resultSelectornull입니다.

이 메서드는 지연된 실행을 사용하여 구현됩니다. 해당 작업을 수행하는 데 필요한 모든 정보가 저장된 개체가 즉시 반환됩니다. 이 메서드에서 나타내는 쿼리는 해당 GetEnumerator 메서드를 직접 호출하거나, foreach(Visual C#에서) 또는 For Each(Visual Basic에서)를 사용하여 개체를 열거할 때까지 실행되지 않습니다.

SelectMany<TSource, TCollection, TResult>(IEnumerable<TSource>, Func<TSource, Int32, IEnumerable<TCollection>>, Func<TSource, TCollection, TResult>) 메서드는 source의 요소를 SelectMany<TSource, TCollection, TResult>(IEnumerable<TSource>, Func<TSource, Int32, IEnumerable<TCollection>>, Func<TSource, TCollection, TResult>) 호출 후 실행되는 쿼리 논리의 범위 내에 유지해야 하는 경우에 유용합니다. 코드 예제는 예제 단원을 참조하세요. TSource 형식 개체와 TCollection 형식 개체 사이에 양방향 관계가 있는 경우, 즉 TCollection 형식 개체가 자신을 생성한 TSource 개체를 검색하는 속성을 제공하는 경우에는 SelectMany<TSource, TCollection, TResult>(IEnumerable<TSource>, Func<TSource, Int32, IEnumerable<TCollection>>, Func<TSource, TCollection, TResult>)의 이 오버로드를 사용할 필요가 없습니다. 대신 SelectMany<TSource, TResult>(IEnumerable<TSource>, Func<TSource, Int32, IEnumerable<TResult>>)을 사용하여 TCollection 개체를 통해 TSource 개체를 다시 탐색할 수 있습니다.

Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

표시: