Enumerable.Select Methode

Definition

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

Überlädt

Select<TSource,TResult>(IEnumerable<TSource>, 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>(IEnumerable<TSource>, 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>(IEnumerable<TSource>, 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::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)

Typparameter

TSource

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

TResult

Der Typ des von selector zurückgegebenen Werts.The type of the value returned by selector.

Parameter

source
IEnumerable<TSource>

Eine Sequenz von Werten, für die eine Transformationsfunktion aufgerufen werden soll.A sequence of values to invoke a transform function on.

selector
Func<TSource,Int32,TResult>

Eine Transformierenfunktion, die auf jedes Quellelement angewendet werden soll. Der zweite Parameter der Funktion stellt den Index des Quellelements dar.A transform function to apply to each source element; the second parameter of the function represents the index of the source element.

Gibt zurück

IEnumerable<TResult>

Ein IEnumerable<T>, dessen Elemente das Ergebnis des Aufrufs einer Transformationsfunktion für jedes Element von source sindAn IEnumerable<T> whose elements are the result of invoking the transform function on each element of source.

Ausnahmen

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

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) verwendet wird, um eine Sequenz von Werten zu projizieren und den Index der einzelnen Elemente zu verwenden.The following code example demonstrates how to use Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) to project over a sequence of values and use the index of each element.

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 }

Hinweise

Diese Methode wird mithilfe von verzögerter Ausführung implementiert.This method is implemented by using deferred execution. Der unmittelbare Rückgabewert ist ein Objekt, das alle Informationen speichert, die zum Ausführen der Aktion erforderlich sind.The immediate return value is an object that stores all the information that is required to perform the action. Die durch diese Methode dargestellte Abfrage wird erst ausgeführt, wenn das Objekt durch Aufrufen der GetEnumerator Methode direkt oder mithilfe foreach in der Visualisierung C# oder For Each in Visual Basic aufgezählt wird.The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in Visual C# or For Each in Visual Basic.

Das erste Argument für selector das das zu verarbeitende Element darstellt.The first argument to selector represents the element to process. Das zweite Argument für selector stellt den NULL basierten Index dieses Elements in der Quell Sequenz dar.The second argument to selector represents the zero-based index of that element in the source sequence. Dies kann hilfreich sein, wenn sich die Elemente in einer bekannten Reihenfolge befinden und Sie beispielsweise mit einem Element an einem bestimmten Index vorgehen möchten.This can be useful if the elements are in a known order and you want to do something with an element at a particular index, for example. Dies kann auch hilfreich sein, wenn Sie den Index von einem oder mehreren Elementen abrufen möchten.It can also be useful if you want to retrieve the index of one or more elements.

Diese Projektions Methode erfordert, dass die Transformations Funktion selectoreinen Wert für jeden Wert in der Quell Sequenz, source, erzeugt.This projection method requires the transform function, selector, to produce one value for each value in the source sequence, source. Wenn selector einen Wert zurückgibt, der selbst eine Auflistung ist, muss der Consumer die unter Sequenzen manuell durchlaufen.If selector returns a value that is itself a collection, it is up to the consumer to traverse the subsequences manually. In einer solchen Situation ist es möglicherweise besser, wenn die Abfrage eine einzelne zusammengefügte Sequenz von Werten zurückgibt.In such a situation, it might be better for your query to return a single coalesced sequence of values. Um dies zu erreichen, verwenden Sie die SelectMany-Methode anstelle von Select.To achieve this, use the SelectMany method instead of Select. Obwohl SelectMany ähnlich wie Selectfunktioniert, unterscheidet sich dies insofern, als dass die Transform-Funktion eine Auflistung zurückgibt, die dann durch SelectMany erweitert wird, bevor Sie zurückgegeben wird.Although SelectMany works similarly to Select, it differs in that the transform function returns a collection that is then expanded by SelectMany before it is returned.

Select<TSource,TResult>(IEnumerable<TSource>, 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::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)

Typparameter

TSource

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

TResult

Der Typ des von selector zurückgegebenen Werts.The type of the value returned by selector.

Parameter

source
IEnumerable<TSource>

Eine Sequenz von Werten, für die eine Transformationsfunktion aufgerufen werden soll.A sequence of values to invoke a transform function on.

selector
Func<TSource,TResult>

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

Gibt zurück

IEnumerable<TResult>

Ein IEnumerable<T>, dessen Elemente das Ergebnis des Aufrufs einer Transformationsfunktion für jedes Element von source sindAn IEnumerable<T> whose elements are the result of invoking the transform function on each element of source.

Ausnahmen

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

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) verwendet wird, um eine Sequenz von-Werten zu projizieren.The following code example demonstrates how to use Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) to project over a sequence of values.

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

Hinweise

Diese Methode wird mithilfe von verzögerter Ausführung implementiert.This method is implemented by using deferred execution. Der unmittelbare Rückgabewert ist ein Objekt, das alle Informationen speichert, die zum Ausführen der Aktion erforderlich sind.The immediate return value is an object that stores all the information that is required to perform the action. Die durch diese Methode dargestellte Abfrage wird erst ausgeführt, wenn das Objekt durch Aufrufen der GetEnumerator Methode direkt oder mithilfe foreach in der Visualisierung C# oder For Each in Visual Basic aufgezählt wird.The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in Visual C# or For Each in Visual Basic.

Diese Projektions Methode erfordert, dass die Transformations Funktion selectoreinen Wert für jeden Wert in der Quell Sequenz, source, erzeugt.This projection method requires the transform function, selector, to produce one value for each value in the source sequence, source. Wenn selector einen Wert zurückgibt, der selbst eine Auflistung ist, muss der Consumer die unter Sequenzen manuell durchlaufen.If selector returns a value that is itself a collection, it is up to the consumer to traverse the subsequences manually. In einer solchen Situation ist es möglicherweise besser, wenn die Abfrage eine einzelne zusammengefügte Sequenz von Werten zurückgibt.In such a situation, it might be better for your query to return a single coalesced sequence of values. Um dies zu erreichen, verwenden Sie die SelectMany-Methode anstelle von Select.To achieve this, use the SelectMany method instead of Select. Obwohl SelectMany ähnlich wie Selectfunktioniert, unterscheidet sich dies insofern, als dass die Transform-Funktion eine Auflistung zurückgibt, die dann durch SelectMany erweitert wird, bevor Sie zurückgegeben wird.Although SelectMany works similarly to Select, it differs in that the transform function returns a collection that is then expanded by SelectMany before it is returned.

In der Abfrage Ausdruckssyntax wird eine select ( C#Visual) oder Select (Visual Basic)-Klausel in einen Aufruf von Selectübersetzt.In query expression syntax, a select (Visual C#) or Select (Visual Basic) clause translates to an invocation of Select.

Siehe auch

Gilt für: