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

Definición

Proyecta cada elemento de una secuencia a un nuevo formulario.Projects each element of a sequence into a new form.

Sobrecargas

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>>)

Proyecta cada elemento de una secuencia en un nuevo formulario incorporando el índice del elemento.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>>)

Proyecta cada elemento de una secuencia a un nuevo formulario.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>>)

Proyecta cada elemento de una secuencia en un nuevo formulario incorporando el índice del elemento.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)

Parámetros de tipo

TSource

Tipo de los elementos de source.The type of the elements of source.

TResult

El tipo de valor devuelto por la función representada por selector.The type of the value returned by the function represented by selector.

Parámetros

source
IQueryable<TSource>

Secuencia de valores que se va a proyectar.A sequence of values to project.

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

Función de proyección que se va a aplicar a cada elemento.A projection function to apply to each element.

Devoluciones

IQueryable<TResult>

IQueryable<T> cuyos elementos son el resultado de invocar una función de proyección en cada elemento de source.An IQueryable<T> whose elements are the result of invoking a projection function on each element of source.

Excepciones

source o selector es null.source or selector is null.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) a través de una secuencia de valores de proyecto y utilizar el índice de cada elemento en el formulario proyectado.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 }

Comentarios

Este método no tiene al menos un parámetro de tipo Expression<TDelegate> cuyo argumento de tipo es uno de los Func<T,TResult> tipos.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Para estos parámetros, se pueden pasar en una expresión lambda y se compilará en un Expression<TDelegate>.For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

El Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) método genera una MethodCallExpression que representa la llamada Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) como un método genérico construido.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. A continuación, pasa el MethodCallExpression a la CreateQuery(Expression) método de la IQueryProvider representado por la Provider propiedad de la source parámetro.It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

El comportamiento de la consulta que se produce como resultado de ejecutar un árbol de expresión que representa la llamada Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) dependen de la implementación del tipo de la source parámetro.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. El comportamiento esperado es que invoque selector en cada elemento de source proyectar en un formato diferente.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>>)

Proyecta cada elemento de una secuencia a un nuevo formulario.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)

Parámetros de tipo

TSource

Tipo de los elementos de source.The type of the elements of source.

TResult

El tipo de valor devuelto por la función representada por selector.The type of the value returned by the function represented by selector.

Parámetros

source
IQueryable<TSource>

Secuencia de valores que se va a proyectar.A sequence of values to project.

selector
Expression<Func<TSource,TResult>>

Función de proyección que se va a aplicar a cada elemento.A projection function to apply to each element.

Devoluciones

IQueryable<TResult>

IQueryable<T> cuyos elementos son el resultado de invocar una función de proyección en cada elemento de source.An IQueryable<T> whose elements are the result of invoking a projection function on each element of source.

Excepciones

source o selector es null.source or selector is null.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) al proyecto a través de una secuencia de valores.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

Comentarios

Este método no tiene al menos un parámetro de tipo Expression<TDelegate> cuyo argumento de tipo es uno de los Func<T,TResult> tipos.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Para estos parámetros, se pueden pasar en una expresión lambda y se compilará en un Expression<TDelegate>.For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

El Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) método genera una MethodCallExpression que representa la llamada Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) como un método genérico construido.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. A continuación, pasa el MethodCallExpression a la CreateQuery(Expression) método de la IQueryProvider representado por la Provider propiedad de la source parámetro.It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

El comportamiento de la consulta que se produce como resultado de ejecutar un árbol de expresión que representa la llamada Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) depende de la implementación del tipo de la source parámetro.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. El comportamiento esperado es que invoque selector en cada elemento de source proyectar en un formato diferente.The expected behavior is that it invokes selector on each element of source to project it into a different form.

Se aplica a