Enumerable.Select Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Projette chaque élément d’une séquence dans un nouveau formulaire.
Surcharges
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) |
Projette chaque élément d'une séquence dans un nouveau formulaire en incorporant l'index de l'élément. |
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Projette chaque élément d’une séquence dans un nouveau formulaire. |
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>)
- Source:
- Select.cs
- Source:
- Select.cs
- Source:
- Select.cs
Projette chaque élément d'une séquence dans un nouveau formulaire en incorporant l'index de l'élément.
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)
Paramètres de type
- TSource
Le type des éléments de source
.
- TResult
Type de la valeur retournée par selector
.
Paramètres
- source
- IEnumerable<TSource>
Séquence de valeurs pour laquelle appeler une fonction de transformation.
Fonction de transformation à appliquer à chaque élément source ; le deuxième paramètre de la fonction représente l'index de l'élément source.
Retours
IEnumerable<T> dont les éléments résultent d'un appel de la fonction de transformation sur chaque élément de source
.
Exceptions
source
ou selector
est null
.
Exemples
L’exemple de code suivant montre comment utiliser pour projeter Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) une séquence de valeurs et utiliser l’index de chaque élément.
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 }
Remarques
Cette méthode est implémentée à l’aide de l’exécution différée. La valeur de retour immédiat est un objet qui stocke toutes les informations nécessaires à l’exécution de l’action. La requête représentée par cette méthode n’est pas exécutée tant que l’objet n’est pas énuméré soit en appelant directement sa GetEnumerator
méthode, soit en utilisant foreach
en C# ou For Each
en Visual Basic.
Premier argument à selector
représenter l’élément à traiter. Le deuxième argument à selector
représente l’index de base zéro de cet élément dans la séquence source. Cela peut être utile si les éléments sont dans un ordre connu et que vous souhaitez faire quelque chose avec un élément à un index particulier, par exemple. Il peut également être utile si vous souhaitez récupérer l’index d’un ou de plusieurs éléments.
Cette méthode de projection nécessite que la fonction de transformation, selector
, produise une valeur pour chaque valeur de la séquence source, source
. Si selector
retourne une valeur qui est elle-même une collection, il appartient au consommateur de parcourir manuellement les sous-séquences. Dans une telle situation, il peut être préférable que votre requête retourne une seule séquence de valeurs coalescées. Pour ce faire, utilisez la SelectMany méthode au lieu de Select. Bien que SelectMany
fonctionne de la même façon Select
que , elle diffère en ce que la fonction de transformation retourne une collection qui est ensuite développée par SelectMany
avant qu’elle ne soit retournée.
S’applique à
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)
- Source:
- Select.cs
- Source:
- Select.cs
- Source:
- Select.cs
Projette chaque élément d’une séquence dans un nouveau formulaire.
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)
Paramètres de type
- TSource
Le type des éléments de source
.
- TResult
Type de la valeur retournée par selector
.
Paramètres
- source
- IEnumerable<TSource>
Séquence de valeurs pour laquelle appeler une fonction de transformation.
- selector
- Func<TSource,TResult>
Fonction de transformation à appliquer à chaque élément.
Retours
IEnumerable<T> dont les éléments résultent d'un appel de la fonction de transformation sur chaque élément de source
.
Exceptions
source
ou selector
est null
.
Exemples
L’exemple de code suivant montre comment utiliser pour projeter Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) une séquence de valeurs.
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
Remarques
Cette méthode est implémentée à l’aide de l’exécution différée. La valeur de retour immédiat est un objet qui stocke toutes les informations nécessaires à l’exécution de l’action. La requête représentée par cette méthode n’est pas exécutée tant que l’objet n’est pas énuméré soit en appelant directement sa GetEnumerator
méthode, soit en utilisant foreach
en C# ou For Each
en Visual Basic.
Cette méthode de projection nécessite que la fonction de transformation, selector
, produise une valeur pour chaque valeur de la séquence source, source
. Si selector
retourne une valeur qui est elle-même une collection, il appartient au consommateur de parcourir manuellement les sous-séquences. Dans une telle situation, il peut être préférable que votre requête retourne une seule séquence de valeurs coalescées. Pour ce faire, utilisez la SelectMany méthode au lieu de Select. Bien que SelectMany
fonctionne de la même façon Select
que , elle diffère en ce que la fonction de transformation retourne une collection qui est ensuite développée par SelectMany
avant qu’elle ne soit retournée.
Dans la syntaxe d’expression de requête, une select
clause (C#) ou Select
(Visual Basic) se traduit par un appel de Select.