Enumerable.Select Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Projiziert jedes Element einer Sequenz in ein neues Format.
Ü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 wird |
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Projiziert jedes Element einer Sequenz in ein neues Format. |
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>)
- Quelle:
- Select.cs
- Quelle:
- Select.cs
- Quelle:
- Select.cs
Projiziert jedes Element einer Sequenz in ein neues Format, indem der Index des Elements integriert wird
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
.
- TResult
Der Typ des von selector
zurückgegebenen Werts.
Parameter
- source
- IEnumerable<TSource>
Eine Sequenz von Werten, für die eine Transformationsfunktion aufgerufen werden soll.
Eine Transformierenfunktion, die auf jedes Quellelement angewendet werden soll. Der zweite Parameter der Funktion stellt den Index des Quellelements dar.
Gibt zurück
Ein IEnumerable<T>, dessen Elemente das Ergebnis des Aufrufs einer Transformationsfunktion für jedes Element von source
sind
Ausnahmen
source
oder selector
ist null
.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie sie verwenden Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) , um eine Sequenz von Werten zu projizieren und den Index jedes Elements zu verwenden.
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 der verzögerten Ausführung implementiert. Der sofortige Rückgabewert ist ein Objekt, das alle Informationen speichert, die zum Ausführen der Aktion erforderlich sind. Die von dieser Methode dargestellte Abfrage wird erst ausgeführt, wenn das Objekt entweder durch direktes Aufrufen der GetEnumerator
-Methode oder mithilfe foreach
von in C# oder For Each
in Visual Basic aufgezählt wird.
Das erste Argument, das verarbeitet werden soll selector
, stellt das zu verarbeitende Element dar. Das zweite Argument, das den selector
nullbasierten Index dieses Elements in der Quellsequenz darstellt. Dies kann nützlich sein, wenn sich die Elemente in einer bekannten Reihenfolge befinden und Sie z. B. mit einem Element an einem bestimmten Index etwas tun möchten. Es kann auch nützlich sein, wenn Sie den Index eines oder mehrerer Elemente abrufen möchten.
Diese Projektionsmethode erfordert die Transformationsfunktion , selector
um einen Wert für jeden Wert in der Quellsequenz zu erzeugen. source
Wenn selector
einen Wert zurückgibt, der selbst eine Auflistung ist, liegt es am Consumer, die Teilsequenzen manuell zu durchlaufen. In einer solchen Situation kann es für Ihre Abfrage besser sein, eine einzelne zusammengefasste Sequenz von Werten zurückzugeben. Um dies zu erreichen, verwenden Sie die SelectMany -Methode anstelle von Select. Obwohl SelectMany
ähnlich wie Select
funktioniert, unterscheidet sie sich darin, dass die Transformationsfunktion eine Auflistung zurückgibt, die dann um SelectMany
erweitert wird, bevor sie zurückgegeben wird.
Gilt für:
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)
- Quelle:
- Select.cs
- Quelle:
- Select.cs
- Quelle:
- Select.cs
Projiziert jedes Element einer Sequenz in ein neues Format.
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
.
- TResult
Der Typ des von selector
zurückgegebenen Werts.
Parameter
- source
- IEnumerable<TSource>
Eine Sequenz von Werten, für die eine Transformationsfunktion aufgerufen werden soll.
- selector
- Func<TSource,TResult>
Eine Transformationsfunktion, die auf jedes Element angewendet werden soll.
Gibt zurück
Ein IEnumerable<T>, dessen Elemente das Ergebnis des Aufrufs einer Transformationsfunktion für jedes Element von source
sind
Ausnahmen
source
oder selector
ist null
.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie sie verwenden Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) , um eine Sequenz von Werten zu projizieren.
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 der verzögerten Ausführung implementiert. Der sofortige Rückgabewert ist ein Objekt, das alle Informationen speichert, die zum Ausführen der Aktion erforderlich sind. Die von dieser Methode dargestellte Abfrage wird erst ausgeführt, wenn das Objekt entweder durch direktes Aufrufen der GetEnumerator
-Methode oder mithilfe foreach
von in C# oder For Each
in Visual Basic aufgezählt wird.
Diese Projektionsmethode erfordert die Transformationsfunktion , selector
um einen Wert für jeden Wert in der Quellsequenz zu erzeugen. source
Wenn selector
einen Wert zurückgibt, der selbst eine Auflistung ist, liegt es am Consumer, die Teilsequenzen manuell zu durchlaufen. In einer solchen Situation kann es für Ihre Abfrage besser sein, eine einzelne zusammengefasste Sequenz von Werten zurückzugeben. Um dies zu erreichen, verwenden Sie die SelectMany -Methode anstelle von Select. Obwohl SelectMany
ähnlich wie Select
funktioniert, unterscheidet sie sich darin, dass die Transformationsfunktion eine Auflistung zurückgibt, die dann um SelectMany
erweitert wird, bevor sie zurückgegeben wird.
In der Abfrageausdruckssyntax wird eine select
(C#)- oder Select
(Visual Basic)-Klausel in einen Aufruf von Selectübersetzt.