Bagikan melalui


Queryable.Select Metode

Definisi

Memproyeksikan setiap elemen urutan ke dalam bentuk baru.

Overload

Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>)

Memproyeksikan setiap elemen urutan ke dalam bentuk baru dengan menggabungkan indeks elemen.

Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>)

Memproyeksikan setiap elemen urutan ke dalam bentuk baru.

Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>)

Sumber:
Queryable.cs
Sumber:
Queryable.cs
Sumber:
Queryable.cs

Memproyeksikan setiap elemen urutan ke dalam bentuk baru dengan menggabungkan indeks elemen.

public:
generic <typename TSource, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TResult> ^ Select(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, int, TResult> ^> ^ selector);
public static System.Linq.IQueryable<TResult> Select<TSource,TResult> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,int,TResult>> selector);
static member Select : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, int, 'Result>> -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function Select(Of TSource, TResult) (source As IQueryable(Of TSource), selector As Expression(Of Func(Of TSource, Integer, TResult))) As IQueryable(Of TResult)

Jenis parameter

TSource

Jenis elemen source.

TResult

Jenis nilai yang dikembalikan oleh fungsi yang diwakili oleh selector.

Parameter

source
IQueryable<TSource>

Urutan nilai yang akan diproyeksikan.

selector
Expression<Func<TSource,Int32,TResult>>

Fungsi proyeksi untuk diterapkan ke setiap elemen.

Mengembalikan

IQueryable<TResult>

Elemen IQueryable<T> yang merupakan hasil dari pemanggilan fungsi proyeksi pada setiap elemen source.

Pengecualian

source atau selector adalah null.

Contoh

Contoh kode berikut menunjukkan cara menggunakan Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) untuk memproyeksikan urutan nilai dan menggunakan indeks setiap elemen dalam formulir yang diproyeksikan.

string[] fruits = { "apple", "banana", "mango", "orange",
                      "passionfruit", "grape" };

// Project an anonymous type that contains the
// index of the string in the source array, and
// a string that contains the same number of characters
// as the string's index in the source array.
var query =
    fruits.AsQueryable()
    .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 }
*/
Dim fruits() As String = {"apple", "banana", "mango", "orange", _
                      "passionfruit", "grape"}

' Project an anonymous type that contains the
' index of the string in the source array, and
' a string that contains the same number of characters
' as the string's index in the source array.
Dim query = _
    fruits.AsQueryable() _
    .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.
MsgBox(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 }

Keterangan

Metode ini memiliki setidaknya satu parameter jenis Expression<TDelegate> yang argumen jenisnya adalah salah satu jenis Func<T,TResult> . Untuk parameter ini, Anda dapat meneruskan ekspresi lambda dan akan dikompilasi ke Expression<TDelegate>.

Metode ini Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) menghasilkan MethodCallExpression yang mewakili pemanggilan Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) dirinya sebagai metode generik yang dibangun. Kemudian meneruskan MethodCallExpression ke CreateQuery(Expression) metode dari yang diwakili IQueryProvider oleh Provider properti source parameter .

Perilaku kueri yang terjadi sebagai akibat dari menjalankan pohon ekspresi yang mewakili panggilan Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) bergantung pada implementasi jenis source parameter. Perilaku yang diharapkan adalah bahwa ia memanggil selector pada setiap elemen untuk memproyeksikannya source ke dalam bentuk yang berbeda.

Berlaku untuk

Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>)

Sumber:
Queryable.cs
Sumber:
Queryable.cs
Sumber:
Queryable.cs

Memproyeksikan setiap elemen urutan ke dalam bentuk baru.

public:
generic <typename TSource, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TResult> ^ Select(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TResult> ^> ^ selector);
public static System.Linq.IQueryable<TResult> Select<TSource,TResult> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TResult>> selector);
static member Select : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Result>> -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function Select(Of TSource, TResult) (source As IQueryable(Of TSource), selector As Expression(Of Func(Of TSource, TResult))) As IQueryable(Of TResult)

Jenis parameter

TSource

Jenis elemen source.

TResult

Jenis nilai yang dikembalikan oleh fungsi yang diwakili oleh selector.

Parameter

source
IQueryable<TSource>

Urutan nilai yang akan diproyeksikan.

selector
Expression<Func<TSource,TResult>>

Fungsi proyeksi untuk diterapkan ke setiap elemen.

Mengembalikan

IQueryable<TResult>

Elemen IQueryable<T> yang merupakan hasil dari pemanggilan fungsi proyeksi pada setiap elemen source.

Pengecualian

source atau selector adalah null.

Contoh

Contoh kode berikut menunjukkan cara menggunakan Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) untuk memproyeksikan urutan nilai.

List<int> range =
    new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

// Project the square of each int value.
IEnumerable<int> squares =
    range.AsQueryable().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
*/
Dim range As New List(Of Integer)(New Integer() {1, 2, 3, 4, 5, 6, 7, 8, 9, 10})

' Project the square of each int value.
Dim squares As IEnumerable(Of Integer) = _
    range.AsQueryable().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.
MsgBox(output.ToString())

' This code produces the following output:

' 1
' 4
' 9
' 16
' 25
' 36
' 49
' 64
' 81
' 100

Keterangan

Metode ini memiliki setidaknya satu parameter jenis Expression<TDelegate> yang argumen jenisnya adalah salah satu jenis Func<T,TResult> . Untuk parameter ini, Anda dapat meneruskan ekspresi lambda dan akan dikompilasi ke Expression<TDelegate>.

Metode ini Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) menghasilkan MethodCallExpression yang mewakili pemanggilan Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) dirinya sebagai metode generik yang dibangun. Kemudian meneruskan MethodCallExpression ke CreateQuery(Expression) metode dari yang diwakili IQueryProvider oleh Provider properti source parameter .

Perilaku kueri yang terjadi sebagai akibat dari menjalankan pohon ekspresi yang mewakili panggilan Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) tergantung pada implementasi jenis source parameter. Perilaku yang diharapkan adalah bahwa ia memanggil selector pada setiap elemen untuk memproyeksikannya source ke dalam bentuk yang berbeda.

Berlaku untuk