Queryable.Select Method

Definition

Projiziert jedes Element einer Sequenz in ein neues Format.Projects each element of a sequence into a new form.

Overloads

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

Projiziert jedes Element einer Sequenz in ein neues Format, indem der Index des Elements integriert wirdProjects each element of a sequence into a new form by incorporating the element's index.

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

Projiziert jedes Element einer Sequenz in ein neues Format.Projects each element of a sequence into a new form.

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

Projiziert jedes Element einer Sequenz in ein neues Format, indem der Index des Elements integriert wirdProjects 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)

Type Parameters

TSource

Der Typ der Elemente von source.The type of the elements of source.

TResult

Der Typ des Werts, der von der durch selector dargestellten Funktion zurückgegeben wird.The type of the value returned by the function represented by selector.

Parameters

source
IQueryable<TSource>

Eine Sequenz von zu projizierenden Werten.A sequence of values to project.

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

Eine Projektionsfunktion, die auf jedes Element angewendet werden soll.A projection function to apply to each element.

Returns

IQueryable<TResult>

Ein IQueryable<T>, dessen Elemente das Ergebnis des Aufrufs einer Projektionsfunktion für jedes Element von source sind.An IQueryable<T> whose elements are the result of invoking a projection function on each element of source.

Exceptions

source oder selector ist null.source or selector is null.

Examples

Im folgenden Codebeispiel wird veranschaulicht, wie Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) verwendet wird, um eine Sequenz von Werten zu projizieren und den Index der einzelnen Elemente im projizierten Formular zu verwenden.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 }

Remarks

Diese Methode verfügt über mindestens einen Parameter vom Typ Expression<TDelegate>, dessen Typargument einer der Func<T,TResult> Typen ist.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Für diese Parameter können Sie einen Lambda-Ausdruck übergeben, der in einen Expression<TDelegate>kompiliert wird.For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

Die Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>)-Methode generiert eine MethodCallExpression, die den Aufruf von Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) selbst als konstruierte generische Methode darstellt.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. Anschließend übergibt Sie den MethodCallExpression an die CreateQuery(Expression)-Methode der IQueryProvider, die durch die Provider-Eigenschaft des source-Parameters dargestellt wird.It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

Das Abfrage Verhalten, das auftritt, wenn eine Ausdrucks Baumstruktur ausgeführt wird, die Aufruf Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) darstellt, hängt von der Implementierung des Typs des source-Parameters ab.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. Das erwartete Verhalten ist, dass selector für jedes Element source aufgerufen wird, um es in eine andere Form zu projizieren.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>>)

Projiziert jedes Element einer Sequenz in ein neues Format.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)

Type Parameters

TSource

Der Typ der Elemente von source.The type of the elements of source.

TResult

Der Typ des Werts, der von der durch selector dargestellten Funktion zurückgegeben wird.The type of the value returned by the function represented by selector.

Parameters

source
IQueryable<TSource>

Eine Sequenz von zu projizierenden Werten.A sequence of values to project.

selector
Expression<Func<TSource,TResult>>

Eine Projektionsfunktion, die auf jedes Element angewendet werden soll.A projection function to apply to each element.

Returns

IQueryable<TResult>

Ein IQueryable<T>, dessen Elemente das Ergebnis des Aufrufs einer Projektionsfunktion für jedes Element von source sind.An IQueryable<T> whose elements are the result of invoking a projection function on each element of source.

Exceptions

source oder selector ist null.source or selector is null.

Examples

Im folgenden Codebeispiel wird veranschaulicht, wie Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) verwendet wird, um eine Sequenz von-Werten zu projizieren.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

Remarks

Diese Methode verfügt über mindestens einen Parameter vom Typ Expression<TDelegate>, dessen Typargument einer der Func<T,TResult> Typen ist.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Für diese Parameter können Sie einen Lambda-Ausdruck übergeben, der in einen Expression<TDelegate>kompiliert wird.For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

Die Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>)-Methode generiert eine MethodCallExpression, die den Aufruf von Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) selbst als konstruierte generische Methode darstellt.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. Anschließend übergibt Sie den MethodCallExpression an die CreateQuery(Expression)-Methode der IQueryProvider, die durch die Provider-Eigenschaft des source-Parameters dargestellt wird.It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

Das Abfrage Verhalten, das auftritt, wenn eine Ausdrucks Baumstruktur ausgeführt wird, die den Aufruf von Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) darstellt, hängt von der Implementierung des Typs des source-Parameters ab.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. Das erwartete Verhalten ist, dass selector für jedes Element source aufgerufen wird, um es in eine andere Form zu projizieren.The expected behavior is that it invokes selector on each element of source to project it into a different form.

Applies to