Enumerable.Select Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
A sorozat egyes elemeit új űrlapra alakítja.
Túlterhelések
| Name | Description |
|---|---|
| Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) |
Az elem indexének beépítésével a sorozat minden elemét új formába alakítja. |
| Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
A sorozat egyes elemeit új űrlapra alakítja. |
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>)
- Forrás:
- Select.cs
- Forrás:
- Select.cs
- Forrás:
- Select.cs
- Forrás:
- Select.cs
- Forrás:
- Select.cs
Az elem indexének beépítésével a sorozat minden elemét új formába alakítja.
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)
Típusparaméterek
- TSource
A . elemeinek sourcetípusa.
- TResult
A visszaadott selectorérték típusa.
Paraméterek
- source
- IEnumerable<TSource>
Egy átalakítási függvény meghívásához szükséges értékek sorozata.
Az egyes forráselemekre alkalmazandó átalakító függvény; a függvény második paramétere a forráselem indexét jelöli.
Válaszok
Egy IEnumerable<T> olyan elem, amelynek elemei a transzformációs függvény meghívásának eredménye az sourceegyes elemeken.
Kivételek
source vagy selector az null.
Példák
Az alábbi példakód bemutatja, hogyan használható Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) az értékek sorozatának kivetítésére és az egyes elemek indexének használatára.
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 }
Megjegyzések
Ezt a metódust halasztott végrehajtással implementáljuk. Az azonnali visszatérési érték egy objektum, amely a művelet végrehajtásához szükséges összes információt tárolja. A metódus által képviselt lekérdezés csak akkor lesz végrehajtva, ha az objektumot a GetEnumerator metódus közvetlen meghívásával vagy foreach c# vagy For Each használatával Visual Basic.
Az első argumentum, amely selector a feldolgozandó elemet jelöli. A második argumentum, amely selector az adott elem nulla alapú indexét jelöli a forrásütemezésben. Ez akkor lehet hasznos, ha az elemek ismert sorrendben vannak, és például egy adott index egy elemével szeretne valamit csinálni. Akkor is hasznos lehet, ha egy vagy több elem indexét szeretné lekérni.
Ehhez a vetítési módszerhez az átalakító függvénynek selectoregy értéket kell létrehoznia a forrásütemezés minden egyes értékéhez. source Ha selector olyan értéket ad vissza, amely maga gyűjtemény, akkor a fogyasztó feladata az alhálózatok manuális bejárása. Ilyen esetben jobb lehet, ha a lekérdezés egyetlen szenesített értéksorozatot ad vissza. Ennek eléréséhez használja a metódust ahelyettSelectMany, hogy .Select Bár SelectMany hasonlóan Selectműködik, abban különbözik, hogy az átalakító függvény egy gyűjteményt ad vissza, amelyet aztán kibontanak SelectMany a visszaadása előtt.
A következőre érvényes:
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)
- Forrás:
- Select.cs
- Forrás:
- Select.cs
- Forrás:
- Select.cs
- Forrás:
- Select.cs
- Forrás:
- Select.cs
A sorozat egyes elemeit új űrlapra alakítja.
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)
Típusparaméterek
- TSource
A . elemeinek sourcetípusa.
- TResult
A visszaadott selectorérték típusa.
Paraméterek
- source
- IEnumerable<TSource>
Egy átalakítási függvény meghívásához szükséges értékek sorozata.
- selector
- Func<TSource,TResult>
Az egyes elemekre alkalmazandó átalakítási függvény.
Válaszok
Egy IEnumerable<T> olyan elem, amelynek elemei a transzformációs függvény meghívásának eredménye az sourceegyes elemeken.
Kivételek
source vagy selector az null.
Példák
Az alábbi példakód bemutatja, hogyan használható Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) a projekt egy értéksorozaton keresztül.
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
Megjegyzések
Ezt a metódust halasztott végrehajtással implementáljuk. Az azonnali visszatérési érték egy objektum, amely a művelet végrehajtásához szükséges összes információt tárolja. A metódus által képviselt lekérdezés csak akkor lesz végrehajtva, ha az objektumot a GetEnumerator metódus közvetlen meghívásával vagy foreach c# vagy For Each használatával Visual Basic.
Ehhez a vetítési módszerhez az átalakító függvénynek selectoregy értéket kell létrehoznia a forrásütemezés minden egyes értékéhez. source Ha selector olyan értéket ad vissza, amely maga gyűjtemény, akkor a fogyasztó feladata az alhálózatok manuális bejárása. Ilyen esetben jobb lehet, ha a lekérdezés egyetlen szenesített értéksorozatot ad vissza. Ennek eléréséhez használja a metódust ahelyettSelectMany, hogy .Select Bár SelectMany hasonlóan Selectműködik, abban különbözik, hogy az átalakító függvény egy gyűjteményt ad vissza, amelyet aztán kibontanak SelectMany a visszaadása előtt.
A lekérdezési kifejezés szintaxisában egy select (C#) vagy Select (Visual Basic) záradék Select meghívására fordít.