Enumerable.Select Enumerable.Select Enumerable.Select Enumerable.Select Method

정의

시퀀스의 각 요소를 새 폼에 투영합니다.Projects each element of a sequence into a new form.

오버로드

Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>)

요소의 인덱스를 통합 하 여 새 양식으로 시퀀스의 각 요소를 프로젝션 합니다.Projects each element of a sequence into a new form by incorporating the element's index.

Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)

시퀀스의 각 요소를 새 폼에 투영합니다.Projects each element of a sequence into a new form.

Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>)

요소의 인덱스를 통합 하 여 새 양식으로 시퀀스의 각 요소를 프로젝션 합니다.Projects each element of a sequence into a new form by incorporating the element's index.

public:
generic <typename TSource, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<TResult> ^ Select(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, int, TResult> ^ selector);
public static System.Collections.Generic.IEnumerable<TResult> Select<TSource,TResult> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int,TResult> selector);
static member Select : seq<'Source> * Func<'Source, int, 'Result> -> seq<'Result>
<Extension()>
Public Function Select(Of TSource, TResult) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Integer, TResult)) As IEnumerable(Of TResult)

형식 매개 변수

TSource

source 요소의 형식입니다.The type of the elements of source.

TResult

반환한 값 형식의 selector합니다.The type of the value returned by selector.

매개 변수

source
IEnumerable<TSource>

변형 함수를 호출할 값 시퀀스입니다.A sequence of values to invoke a transform function on.

selector
Func<TSource,Int32,TResult>

각 소스 요소에 적용할 변형 함수이며, 이 함수의 두 번째 매개 변수는 소스 요소의 인덱스를 나타냅니다.A transform function to apply to each source element; the second parameter of the function represents the index of the source element.

반환

IEnumerable<TResult>

IEnumerable<T> 의 각 요소에 대해 변형 함수를 호출한 결과로 얻어지는 요소가 source합니다.An IEnumerable<T> whose elements are the result of invoking the transform function on each element of source.

예외

source 또는 selectornull인 경우source or selector is null.

예제

다음 코드 예제에 사용 하는 방법을 보여 줍니다. Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) 값의 시퀀스에 대해 프로젝트 및 각 요소의 인덱스를 사용 합니다.The following code example demonstrates how to use Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) to project over a sequence of values and use the index of each element.

string[] fruits = { "apple", "banana", "mango", "orange", 
                      "passionfruit", "grape" };

var query =
    fruits.Select((fruit, index) =>
                      new { index, str = fruit.Substring(0, index) });

foreach (var obj in query)
{
    Console.WriteLine("{0}", obj);
}

/*
 This code produces the following output:

 {index=0, str=}
 {index=1, str=b}
 {index=2, str=ma}
 {index=3, str=ora}
 {index=4, str=pass}
 {index=5, str=grape}
*/
' Create an array of strings.
Dim fruits() As String =
{"apple", "banana", "mango", "orange", "passionfruit", "grape"}

' Project each item in the array to an anonymous type
' that stores the item's index in the array and
' a substring of each item whose length is equal
' to the index position in the original array.
Dim query =
fruits.Select(Function(fruit, index) _
                  New With {index, .Str = fruit.Substring(0, index)})

Dim output As New System.Text.StringBuilder
For Each obj In query
    output.AppendLine(obj.ToString())
Next

' Display the output.
MsgBox(output.ToString())

' This code produces the following output:
'
' { index = 0, Str =  }
' { index = 1, Str = b }
' { index = 2, Str = ma }
' { index = 3, Str = ora }
' { index = 4, Str = pass }
' { index = 5, Str = grape }

설명

이 메서드는 지연 된 실행을 사용 하 여 구현 됩니다.This method is implemented by using deferred execution. 즉시 반환 값은 작업을 수행 하는 데 필요한 모든 정보를 저장 하는 개체입니다.The immediate return value is an object that stores all the information that is required to perform the action. 이 메서드를 나타내는 쿼리 하거나 호출 하 여 개체 열거 될 때까지 실행 되지 않습니다 해당 GetEnumerator 메서드를 사용 하 여 직접 또는 foreach Visual C# 또는 For Each Visual Basic의 합니다.The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in Visual C# or For Each in Visual Basic.

첫 번째 인수 selector 처리 요소를 나타냅니다.The first argument to selector represents the element to process. 두 번째 인수를 selector 소스 시퀀스에서 해당 요소의 0부터 시작 인덱스를 나타냅니다.The second argument to selector represents the zero-based index of that element in the source sequence. 이 요소는 알려진된 순서 대로 및 예를 들어 특정 인덱스에 요소를 사용 하 여 작업을 수행 하려는 경우 유용할 수 있습니다.This can be useful if the elements are in a known order and you want to do something with an element at a particular index, for example. 것도 유용할 수 있습니다 하나 이상의 요소의 인덱스를 검색 하려는 경우.It can also be useful if you want to retrieve the index of one or more elements.

이 프로젝션 메서드에 필요 변형 함수 selector소스 시퀀스의 각 값에 대해 하나의 값을 생성 하 source합니다.This projection method requires the transform function, selector, to produce one value for each value in the source sequence, source. 경우 selector 소비자가 수동으로 컬렉션이 것은 컬렉션 자체는 값을 반환 합니다.If selector returns a value that is itself a collection, it is up to the consumer to traverse the subsequences manually. 이러한 상황에서 값의 단일 병합 된 시퀀스를 반환 하도록 쿼리를 위한 더 나은 수 있습니다.In such a situation, it might be better for your query to return a single coalesced sequence of values. 이 위해 사용 합니다 SelectMany 메서드 대신 Select합니다.To achieve this, use the SelectMany method instead of Select. 하지만 SelectMany 유사 하 게 작동 Select, 하 여 확장 한 다음 컬렉션을 반환 하는 변환 함수는 다른 SelectMany 반환 되기 전에 합니다.Although SelectMany works similarly to Select, it differs in that the transform function returns a collection that is then expanded by SelectMany before it is returned.

Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)

시퀀스의 각 요소를 새 폼에 투영합니다.Projects each element of a sequence into a new form.

public:
generic <typename TSource, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<TResult> ^ Select(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TResult> ^ selector);
public static System.Collections.Generic.IEnumerable<TResult> Select<TSource,TResult> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TResult> selector);
static member Select : seq<'Source> * Func<'Source, 'Result> -> seq<'Result>
<Extension()>
Public Function Select(Of TSource, TResult) (source As IEnumerable(Of TSource), selector As Func(Of TSource, TResult)) As IEnumerable(Of TResult)

형식 매개 변수

TSource

source 요소의 형식입니다.The type of the elements of source.

TResult

반환한 값 형식의 selector합니다.The type of the value returned by selector.

매개 변수

source
IEnumerable<TSource>

변형 함수를 호출할 값 시퀀스입니다.A sequence of values to invoke a transform function on.

selector
Func<TSource,TResult>

각 요소에 적용할 변형 함수입니다.A transform function to apply to each element.

반환

IEnumerable<TResult>

IEnumerable<T> 의 각 요소에 대해 변형 함수를 호출한 결과로 얻어지는 요소가 source합니다.An IEnumerable<T> whose elements are the result of invoking the transform function on each element of source.

예외

source 또는 selectornull인 경우source or selector is null.

예제

다음 코드 예제에 사용 하는 방법을 보여 줍니다. Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) 값의 시퀀스에 대해 프로젝트입니다.The following code example demonstrates how to use Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) to project over a sequence of values.

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

foreach (int num in squares)
{
    Console.WriteLine(num);
}
/*
 This code produces the following output:

 1
 4
 9
 16
 25
 36
 49
 64
 81
 100
*/
' Create a collection of sequential integers
' from 1 to 10 and project their squares.
Dim squares As IEnumerable(Of Integer) =
Enumerable.Range(1, 10).Select(Function(x) x * x)

Dim output As New System.Text.StringBuilder
For Each num As Integer In squares
    output.AppendLine(num)
Next

' Display the output.
MsgBox(output.ToString())

' This code produces the following output:
'
' 1
' 4
' 9
' 16
' 25
' 36
' 49
' 64
' 81
' 100

설명

이 메서드는 지연 된 실행을 사용 하 여 구현 됩니다.This method is implemented by using deferred execution. 즉시 반환 값은 작업을 수행 하는 데 필요한 모든 정보를 저장 하는 개체입니다.The immediate return value is an object that stores all the information that is required to perform the action. 이 메서드를 나타내는 쿼리 하거나 호출 하 여 개체 열거 될 때까지 실행 되지 않습니다 해당 GetEnumerator 메서드를 사용 하 여 직접 또는 foreach Visual C# 또는 For Each Visual Basic의 합니다.The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in Visual C# or For Each in Visual Basic.

이 프로젝션 메서드에 필요 변형 함수 selector소스 시퀀스의 각 값에 대해 하나의 값을 생성 하 source합니다.This projection method requires the transform function, selector, to produce one value for each value in the source sequence, source. 경우 selector 소비자가 수동으로 컬렉션이 것은 컬렉션 자체는 값을 반환 합니다.If selector returns a value that is itself a collection, it is up to the consumer to traverse the subsequences manually. 이러한 상황에서 값의 단일 병합 된 시퀀스를 반환 하도록 쿼리를 위한 더 나은 수 있습니다.In such a situation, it might be better for your query to return a single coalesced sequence of values. 이 위해 사용 합니다 SelectMany 메서드 대신 Select합니다.To achieve this, use the SelectMany method instead of Select. 하지만 SelectMany 유사 하 게 작동 Select, 하 여 확장 한 다음 컬렉션을 반환 하는 변환 함수는 다른 SelectMany 반환 되기 전에 합니다.Although SelectMany works similarly to Select, it differs in that the transform function returns a collection that is then expanded by SelectMany before it is returned.

쿼리 식 구문에는 select (Visual C#) 또는 Select 절 (Visual Basic)의 호출으로 변환 Select합니다.In query expression syntax, a select (Visual C#) or Select (Visual Basic) clause translates to an invocation of Select.

추가 정보

적용 대상