Enumerable.Select Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir dizinin her öğesini yeni bir forma projeler.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) |
Öğesinin dizinini birleştirerek bir dizinin her öğesini yeni bir forma projeler. |
| Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Bir dizinin her öğesini yeni bir forma projeler. |
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>)
- Kaynak:
- Select.cs
- Kaynak:
- Select.cs
- Kaynak:
- Select.cs
- Kaynak:
- Select.cs
- Kaynak:
- Select.cs
Öğesinin dizinini birleştirerek bir dizinin her öğesini yeni bir forma projeler.
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ür Parametreleri
- TSource
öğelerinin sourcetürü.
- TResult
tarafından selectordöndürülen değerin türü.
Parametreler
- source
- IEnumerable<TSource>
Dönüştürme işlevinin çağrılmak için bir değer dizisi.
Her kaynak öğeye uygulanacak bir dönüştürme işlevi; işlevinin ikinci parametresi, kaynak öğenin dizinini temsil eder.
Döndürülenler
IEnumerable<T> öğeleri, transform işlevinin her öğesinde sourceçağrılır.
Özel durumlar
source veya selector şeklindedir null.
Örnekler
Aşağıdaki kod örneği, bir değer dizisi üzerinde yansıtmak ve her öğenin dizinini kullanmak için nasıl Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) kullanılacağını gösterir.
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 }
Açıklamalar
Bu yöntem ertelenen yürütme kullanılarak uygulanır. Hemen dönüş değeri, eylemi gerçekleştirmek için gereken tüm bilgileri depolayan bir nesnedir. Bu yöntemle temsil edilen sorgu, nesne doğrudan GetEnumerator yöntemini çağırarak veya C# içinde foreach veya Visual Basic'de For Each kullanılarak numaralandırılana kadar yürütülür.
İşlenmek üzere öğeyi selector temsil eden ilk bağımsız değişken. için ikinci bağımsız değişken selector , kaynak dizideki bu öğenin sıfır tabanlı dizinini temsil eder. Öğeler bilinen bir sıradaysa ve belirli bir dizindeki bir öğeyle bir şey yapmak istiyorsanız, örneğin bu yararlı olabilir. Ayrıca, bir veya daha fazla öğenin dizinini almak istediğinizde de yararlı olabilir.
Bu projeksiyon yöntemi, selectorkaynak dizisindeki her değer için bir değer üretmek için transform işlevini gerektirir source. Kendisi bir koleksiyon olan bir değer döndürürse selector , alt dizileri el ile gezinmek tüketiciye aittir. Böyle bir durumda sorgunuzun tek bir birleşimli değer dizisi döndürmesi daha iyi olabilir. Bunu başarmak için yerine yöntemini SelectManykullanınSelect. ile benzer şekilde SelectManyçalışsa Select da, dönüştürme işlevinin döndürülmeden önce tarafından SelectMany genişletilmiş bir koleksiyon döndürmesi farklıdır.
Şunlara uygulanır
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)
- Kaynak:
- Select.cs
- Kaynak:
- Select.cs
- Kaynak:
- Select.cs
- Kaynak:
- Select.cs
- Kaynak:
- Select.cs
Bir dizinin her öğesini yeni bir forma projeler.
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ür Parametreleri
- TSource
öğelerinin sourcetürü.
- TResult
tarafından selectordöndürülen değerin türü.
Parametreler
- source
- IEnumerable<TSource>
Dönüştürme işlevinin çağrılmak için bir değer dizisi.
- selector
- Func<TSource,TResult>
Her öğeye uygulanacak bir dönüştürme işlevi.
Döndürülenler
IEnumerable<T> öğeleri, transform işlevinin her öğesinde sourceçağrılır.
Özel durumlar
source veya selector şeklindedir null.
Örnekler
Aşağıdaki kod örneği, bir değer dizisi üzerinde yansıtmak için nasıl kullanılacağını Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) gösterir.
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
Açıklamalar
Bu yöntem ertelenen yürütme kullanılarak uygulanır. Hemen dönüş değeri, eylemi gerçekleştirmek için gereken tüm bilgileri depolayan bir nesnedir. Bu yöntemle temsil edilen sorgu, nesne doğrudan GetEnumerator yöntemini çağırarak veya C# içinde foreach veya Visual Basic'de For Each kullanılarak numaralandırılana kadar yürütülür.
Bu projeksiyon yöntemi, selectorkaynak dizisindeki her değer için bir değer üretmek için transform işlevini gerektirir source. Kendisi bir koleksiyon olan bir değer döndürürse selector , alt dizileri el ile gezinmek tüketiciye aittir. Böyle bir durumda sorgunuzun tek bir birleşimli değer dizisi döndürmesi daha iyi olabilir. Bunu başarmak için yerine yöntemini SelectManykullanınSelect. ile benzer şekilde SelectManyçalışsa Select da, dönüştürme işlevinin döndürülmeden önce tarafından SelectMany genişletilmiş bir koleksiyon döndürmesi farklıdır.
Sorgu ifadesi söz diziminde, select (C#) veya Select (Visual Basic) yan tümcesi, Select çağrısına çevrilir.