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
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) |
Öğenin dizinini birleştirerek bir dizideki her öğeyi 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
Öğenin dizinini birleştirerek bir dizideki her öğeyi 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 source
türü.
- TResult
tarafından selector
dö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 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 dizi değer ü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 ertelenmiş 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, doğrudan yöntemini çağırarak GetEnumerator
veya C# içinde veya For Each
Visual Basic'te kullanarak foreach
nesne 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. Bir veya daha fazla öğenin dizinini almak istiyorsanız da yararlı olabilir.
Bu projeksiyon yöntemi, selector
kaynak dizisindeki source
her değer için bir değer üretmek üzere transform işlevini gerektirir. Kendisi bir koleksiyon olan bir değer döndürürse selector
, alt dizileri el ile geçmek tüketiciye bağlıdır. Böyle bir durumda, sorgunuzun tek bir birleşimli değer dizisi döndürmesi daha iyi olabilir. Bunu başarmak için yerine Selectyöntemini kullanınSelectMany. ile benzer şekilde Select
çalışsa SelectMany
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
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 source
türü.
- TResult
tarafından selector
dö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 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 üzerinden yansıtmak için özelliğinin 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 ertelenmiş 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, doğrudan yöntemini çağırarak GetEnumerator
veya C# içinde veya For Each
Visual Basic'te kullanarak foreach
nesne numaralandırılana kadar yürütülür.
Bu projeksiyon yöntemi, selector
kaynak dizisindeki source
her değer için bir değer üretmek üzere transform işlevini gerektirir. Kendisi bir koleksiyon olan bir değer döndürürse selector
, alt dizileri el ile geçmek tüketiciye bağlıdır. Böyle bir durumda, sorgunuzun tek bir birleşimli değer dizisi döndürmesi daha iyi olabilir. Bunu başarmak için yerine Selectyöntemini kullanınSelectMany. ile benzer şekilde Select
çalışsa SelectMany
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 bir select
(C#) veya Select
(Visual Basic) yan tümcesi çağrısına Selectdönüşür.