Enumerable.Select Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Projeta cada elemento de uma sequência em um novo formulário.
Sobrecargas
| Nome | Description |
|---|---|
| Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) |
Projeta cada elemento de uma sequência em um novo formulário incorporando o índice do elemento. |
| Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Projeta cada elemento de uma sequência em um novo formulário. |
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>)
Projeta cada elemento de uma sequência em um novo formulário incorporando o índice do elemento.
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)
Parâmetros de tipo
- TSource
O tipo dos elementos de source.
- TResult
O tipo do valor retornado por selector.
Parâmetros
- source
- IEnumerable<TSource>
Uma sequência de valores para invocar uma função de transformação.
Uma função de transformação a ser aplicada a cada elemento de origem; o segundo parâmetro da função representa o índice do elemento de origem.
Retornos
Um IEnumerable<T> cujos elementos são o resultado da invocação da função de transformação em cada elemento de source.
Exceções
source ou selector é null.
Exemplos
O exemplo de código a seguir demonstra como usar para projetar Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) em uma sequência de valores e usar o índice de cada elemento.
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.
Console.WriteLine(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 }
Comentários
Esse método é implementado usando a execução adiada. O valor de retorno imediato é um objeto que armazena todas as informações necessárias para executar a ação. A consulta representada por esse método não é executada até que o objeto seja enumerado chamando seu método GetEnumerator diretamente ou usando foreach em C# ou For Each em Visual Basic.
O primeiro argumento a selector representar o elemento a ser processado. O segundo argumento para selector representar o índice baseado em zero desse elemento na sequência de origem. Isso pode ser útil se os elementos estiverem em uma ordem conhecida e você quiser fazer algo com um elemento em um índice específico, por exemplo. Também pode ser útil se você quiser recuperar o índice de um ou mais elementos.
Esse método de projeção requer a função de transformação, selectorpara produzir um valor para cada valor na sequência de origem. source Se selector retornar um valor que é uma coleção em si, cabe ao consumidor percorrer as subsequências manualmente. Em tal situação, pode ser melhor para sua consulta retornar uma única sequência de valores unidos. Para conseguir isso, use o SelectMany método em vez de Select. Embora SelectMany funcione da mesma forma Select, é diferente porque a função de transformação retorna uma coleção que é então expandida antes SelectMany de ser retornada.
Aplica-se a
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)
Projeta cada elemento de uma sequência em um novo formulário.
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)
Parâmetros de tipo
- TSource
O tipo dos elementos de source.
- TResult
O tipo do valor retornado por selector.
Parâmetros
- source
- IEnumerable<TSource>
Uma sequência de valores para invocar uma função de transformação.
- selector
- Func<TSource,TResult>
Uma função de transformação a ser aplicada a cada elemento.
Retornos
Um IEnumerable<T> cujos elementos são o resultado da invocação da função de transformação em cada elemento de source.
Exceções
source ou selector é null.
Exemplos
O exemplo de código a seguir demonstra como usar para projetar Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) em uma sequência de valores.
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.
Console.WriteLine(output.ToString())
' This code produces the following output:
'
' 1
' 4
' 9
' 16
' 25
' 36
' 49
' 64
' 81
' 100
Comentários
Esse método é implementado usando a execução adiada. O valor de retorno imediato é um objeto que armazena todas as informações necessárias para executar a ação. A consulta representada por esse método não é executada até que o objeto seja enumerado chamando seu método GetEnumerator diretamente ou usando foreach em C# ou For Each em Visual Basic.
Esse método de projeção requer a função de transformação, selectorpara produzir um valor para cada valor na sequência de origem. source Se selector retornar um valor que é uma coleção em si, cabe ao consumidor percorrer as subsequências manualmente. Em tal situação, pode ser melhor para sua consulta retornar uma única sequência de valores unidos. Para conseguir isso, use o SelectMany método em vez de Select. Embora SelectMany funcione da mesma forma Select, é diferente porque a função de transformação retorna uma coleção que é então expandida antes SelectMany de ser retornada.
Na sintaxe da expressão de consulta, uma cláusula select (C#) ou Select (Visual Basic) se traduz em uma invocação de Select.