Queryable.Select Queryable.Select Queryable.Select Queryable.Select Method

Définition

Projette chaque élément d’une séquence dans un nouveau formulaire.Projects each element of a sequence into a new form.

Surcharges

Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>)

Projette chaque élément d'une séquence dans un nouveau formulaire en incorporant l'index de l'élément.Projects each element of a sequence into a new form by incorporating the element's index.

Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>)

Projette chaque élément d’une séquence dans un nouveau formulaire.Projects each element of a sequence into a new form.

Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>)

Projette chaque élément d'une séquence dans un nouveau formulaire en incorporant l'index de l'élément.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::Linq::IQueryable<TResult> ^ Select(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, int, TResult> ^> ^ selector);
public static System.Linq.IQueryable<TResult> Select<TSource,TResult> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,int,TResult>> selector);
static member Select : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, int, 'Result>> -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function Select(Of TSource, TResult) (source As IQueryable(Of TSource), selector As Expression(Of Func(Of TSource, Integer, TResult))) As IQueryable(Of TResult)

Paramètres de type

TSource

Le type des éléments de source.The type of the elements of source.

TResult

Type de la valeur retournée par la fonction représentée par selector.The type of the value returned by the function represented by selector.

Paramètres

source
IQueryable<TSource>

Séquence de valeurs à projeter.A sequence of values to project.

selector
Expression<Func<TSource,Int32,TResult>>

Fonction de projection à appliquer à chaque élément.A projection function to apply to each element.

Retours

IQueryable<TResult>

IQueryable<T> dont les éléments sont le résultat de l'appel d'une fonction de projection sur chaque élément de source.An IQueryable<T> whose elements are the result of invoking a projection function on each element of source.

Exceptions

source ou selector a la valeur null.source or selector is null.

Exemples

L’exemple de code suivant montre comment utiliser Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) pour projeter sur une séquence de valeurs et utiliser l’index de chaque élément dans le formulaire projeté.The following code example demonstrates how to use Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) to project over a sequence of values and use the index of each element in the projected form.

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

// Project an anonymous type that contains the
// index of the string in the source array, and
// a string that contains the same number of characters
// as the string's index in the source array.
var query =
    fruits.AsQueryable()
    .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 }
*/

Dim fruits() As String = {"apple", "banana", "mango", "orange", _
                      "passionfruit", "grape"}

' Project an anonymous type that contains the
' index of the string in the source array, and
' a string that contains the same number of characters
' as the string's index in the source array.
Dim query = _
    fruits.AsQueryable() _
    .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 }

Remarques

Cette méthode a au moins un paramètre de type Expression<TDelegate> dont l' Func<T,TResult> argument de type est l’un des types.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Pour ces paramètres, vous pouvez passer une expression lambda et elle sera compilée dans un Expression<TDelegate>.For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

La Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) méthode génère un MethodCallExpression qui représente l' Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) appel de lui-même comme une méthode générique construite.The Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) method generates a MethodCallExpression that represents calling Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) itself as a constructed generic method. Il MethodCallExpression passe ensuite à la IQueryProvider CreateQuery(Expression) méthode de représenté par la Provider propriété du source paramètre.It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

Le comportement de requête qui se produit suite à l’exécution d’une arborescence d’expression qui Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) représente l’appel de dépend de l’implémentation du source type du paramètre.The query behavior that occurs as a result of executing an expression tree that represents calling Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) depend on the implementation of the type of the source parameter. Le comportement attendu est qu’il appelle selector sur chaque élément de source pour le projeter dans un autre formulaire.The expected behavior is that it invokes selector on each element of source to project it into a different form.

Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>)

Projette chaque élément d’une séquence dans un nouveau formulaire.Projects each element of a sequence into a new form.

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

Paramètres de type

TSource

Le type des éléments de source.The type of the elements of source.

TResult

Type de la valeur retournée par la fonction représentée par selector.The type of the value returned by the function represented by selector.

Paramètres

source
IQueryable<TSource>

Séquence de valeurs à projeter.A sequence of values to project.

selector
Expression<Func<TSource,TResult>>

Fonction de projection à appliquer à chaque élément.A projection function to apply to each element.

Retours

IQueryable<TResult>

IQueryable<T> dont les éléments sont le résultat de l'appel d'une fonction de projection sur chaque élément de source.An IQueryable<T> whose elements are the result of invoking a projection function on each element of source.

Exceptions

source ou selector est null.source or selector is null.

Exemples

L’exemple de code suivant montre comment utiliser Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) pour projeter sur une séquence de valeurs.The following code example demonstrates how to use Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) to project over a sequence of values.

List<int> range =
    new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

// Project the square of each int value.
IEnumerable<int> squares =
    range.AsQueryable().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
*/

Dim range As New List(Of Integer)(New Integer() {1, 2, 3, 4, 5, 6, 7, 8, 9, 10})

' Project the square of each int value.
Dim squares As IEnumerable(Of Integer) = _
    range.AsQueryable().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

Remarques

Cette méthode a au moins un paramètre de type Expression<TDelegate> dont l' Func<T,TResult> argument de type est l’un des types.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Pour ces paramètres, vous pouvez passer une expression lambda et elle sera compilée dans un Expression<TDelegate>.For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

La Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) méthode génère un MethodCallExpression qui représente l' Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) appel de lui-même comme une méthode générique construite.The Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) method generates a MethodCallExpression that represents calling Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) itself as a constructed generic method. Il MethodCallExpression passe ensuite à la IQueryProvider CreateQuery(Expression) méthode de représenté par la Provider propriété du source paramètre.It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

Le comportement de la requête qui se produit suite à l’exécution d’une arborescence d’expressions Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) qui représente l’appel de dépend de l’implémentation source du type du paramètre.The query behavior that occurs as a result of executing an expression tree that represents calling Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) depends on the implementation of the type of the source parameter. Le comportement attendu est qu’il appelle selector sur chaque élément de source pour le projeter dans un autre formulaire.The expected behavior is that it invokes selector on each element of source to project it into a different form.

S’applique à