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

Enumerable.Select<TSource, TResult> 메서드 (IEnumerable<TSource>, Func<TSource, TResult>)

2013-12-13

시퀀스의 각 요소를 새 폼에 프로젝션합니다.

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

public static IEnumerable<TResult> Select<TSource, TResult>(
	this IEnumerable<TSource> source,
	Func<TSource, TResult> selector
)

형식 매개 변수

TSource

source의 요소 형식입니다.

TResult

selector에서 반환되는 값의 형식입니다.

매개 변수

source
형식: System.Collections.Generic.IEnumerable<TSource>
변형 함수를 호출할 값 시퀀스입니다.
selector
형식: System.Func<TSource, TResult>
각 요소에 적용할 변형 함수입니다.

반환 값

형식: System.Collections.Generic.IEnumerable<TResult>
포함하는 요소가 source의 각 요소에서 변형 함수를 호출한 결과인 IEnumerable<T>입니다.

사용 정보

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

예외조건
ArgumentNullException

source 또는 selectornull입니다.

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

이 프로젝션 메서드에는 소스 시퀀스인 source의 각 값에 대해 단일 값을 생성하는 변형 함수인 selector가 필요합니다. selector가 반환하는 값이 컬렉션이면 소비자가 결과 컬렉션을 직접 탐색해야 합니다. 이러한 경우에는 쿼리에서 결합된 단일 값 시퀀스를 반환하는 것이 좋습니다. 이렇게 하려면 Select 메서드 대신 SelectMany 메서드를 사용합니다. SelectMany의 작동 방식은 Select와 비슷하지만 변형 함수에서 SelectMany를 통해 컬렉션을 확장한 다음 반환한다는 점이 다릅니다.

쿼리 식 구문에서 select(Visual C#) 또는 Select(Visual Basic) 절은 Enumerable.Select 호출로 변환됩니다.

다음 코드 예제에서는 Select<TSource, TResult>(IEnumerable<TSource>, Func<TSource, TResult>)을 사용하여 값 시퀀스를 투영하는 방법을 보여 줍니다.


      IEnumerable<int> squares =
          Enumerable.Range(1, 10).Select(x => x * x);

      foreach (int num in squares)
      {
         outputBlock.Text += num + "\n";
      }
      /*
       This code produces the following output:

       1
       4
       9
       16
       25
       36
       49
       64
       81
       100
      */



Windows Phone OS

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

Windows Phone

표시: