Queryable.Select Metoda

Definicja

Projektuje każdy element sekwencji w nowym formularzu.Projects each element of a sequence into a new form.

Przeciążenia

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

Projektuje każdy element sekwencji w nowym formularzu, włączając indeks elementu.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>>)

Projektuje każdy element sekwencji w nowym formularzu.Projects each element of a sequence into a new form.

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

Projektuje każdy element sekwencji w nowym formularzu, włączając indeks elementu.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)

Parametry typu

TSource

Typ elementów source .The type of the elements of source.

TResult

Typ wartości zwracanej przez funkcję reprezentowanej przez selector .The type of the value returned by the function represented by selector.

Parametry

source
IQueryable<TSource>

Sekwencja wartości do projektu.A sequence of values to project.

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

Funkcja projekcji do zastosowania do każdego elementu.A projection function to apply to each element.

Zwraca

IQueryable<TResult>

IQueryable<T>Których elementy są wynikiem wywołania funkcji projekcji na każdym elemencie source .An IQueryable<T> whose elements are the result of invoking a projection function on each element of source.

Wyjątki

source lub selector jest null .source or selector is null.

Przykłady

Poniższy przykład kodu demonstruje, jak używać Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) do tworzenia projektu przez sekwencję wartości i używać indeksu każdego elementu w formularzu rzutowanym.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 }

Uwagi

Ta metoda ma co najmniej jeden parametr typu Expression<TDelegate> , którego argument typu jest jednym z Func<T,TResult> typów.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Dla tych parametrów można przekazać wyrażenie lambda i zostanie ono skompilowane do Expression<TDelegate> .For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>)Metoda generuje element MethodCallExpression reprezentujący wywoływanie Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) jako metodę rodzajową.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. Następnie przekazuje MethodCallExpression do CreateQuery(Expression) metody IQueryProvider reprezentowanej przez Provider Właściwość source parametru.It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

Zachowanie zapytania, które występuje w wyniku wykonania drzewa wyrażenia, które reprezentuje wywołanie, Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) zależy od implementacji typu source parametru.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. Oczekiwane zachowanie jest wywoływane selector dla każdego elementu w source celu zaprojektowania go w innym formularzu.The expected behavior is that it invokes selector on each element of source to project it into a different form.

Dotyczy

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

Projektuje każdy element sekwencji w nowym formularzu.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)

Parametry typu

TSource

Typ elementów source .The type of the elements of source.

TResult

Typ wartości zwracanej przez funkcję reprezentowanej przez selector .The type of the value returned by the function represented by selector.

Parametry

source
IQueryable<TSource>

Sekwencja wartości do projektu.A sequence of values to project.

selector
Expression<Func<TSource,TResult>>

Funkcja projekcji do zastosowania do każdego elementu.A projection function to apply to each element.

Zwraca

IQueryable<TResult>

IQueryable<T>Których elementy są wynikiem wywołania funkcji projekcji na każdym elemencie source .An IQueryable<T> whose elements are the result of invoking a projection function on each element of source.

Wyjątki

source lub selector jest null .source or selector is null.

Przykłady

Poniższy przykład kodu demonstruje, jak używać Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) do tworzenia projektów przez sekwencję wartości.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

Uwagi

Ta metoda ma co najmniej jeden parametr typu Expression<TDelegate> , którego argument typu jest jednym z Func<T,TResult> typów.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Dla tych parametrów można przekazać wyrażenie lambda i zostanie ono skompilowane do Expression<TDelegate> .For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>)Metoda generuje element MethodCallExpression reprezentujący wywoływanie Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) jako metodę rodzajową.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. Następnie przekazuje MethodCallExpression do CreateQuery(Expression) metody IQueryProvider reprezentowanej przez Provider Właściwość source parametru.It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

Zachowanie zapytania, które występuje w wyniku wykonania drzewa wyrażenia, które reprezentuje wywołanie, Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) zależy od implementacji typu source parametru.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. Oczekiwane zachowanie jest wywoływane selector dla każdego elementu w source celu zaprojektowania go w innym formularzu.The expected behavior is that it invokes selector on each element of source to project it into a different form.

Dotyczy