Bagikan melalui


Pilih Klausa (Visual Basic)

Menentukan hasil kueri.

Sintaksis

Select [ var1 = ] fieldName1 [, [ var2 = ] fieldName2 [...] ]  

Bagian

var1
Fakultatif. Alias yang dapat digunakan untuk mereferensikan hasil ekspresi kolom.

fieldName1
Dibutuhkan. Nama bidang yang akan dikembalikan dalam hasil kueri.

Komentar

Anda bisa menggunakan Select klausa untuk menentukan hasil yang akan dikembalikan dari kueri. Ini memungkinkan Anda menentukan anggota jenis anonim baru yang dibuat oleh kueri, atau untuk menargetkan anggota tipe bernama yang dikembalikan oleh kueri. Klausa Select tidak diperlukan untuk kueri. Jika tidak ada Select klausa yang ditentukan, kueri akan mengembalikan jenis berdasarkan semua anggota variabel rentang yang diidentifikasi untuk cakupan saat ini. Untuk informasi selengkapnya, lihat Jenis Anonim. Saat kueri membuat jenis bernama, kueri akan mengembalikan hasil tipe IEnumerable<T> di mana T adalah jenis yang dibuat.

Klausa Select dapat mereferensikan variabel apa pun dalam cakupan saat ini. Ini termasuk variabel rentang yang diidentifikasi dalam From klausul (atau From klausa). Ini juga mencakup variabel baru yang dibuat dengan alias oleh Aggregateklausa , , Group ByLet, atau Group Join , atau , atau variabel dari klausa sebelumnya Select dalam ekspresi kueri. Klausa Select juga dapat menyertakan nilai statis. Misalnya, contoh kode berikut menunjukkan ekspresi kueri di mana Select klausa menentukan hasil kueri sebagai jenis anonim baru dengan empat anggota: ProductName, Price, Discount, dan DiscountedPrice. Nilai ProductName anggota dan Price diambil dari variabel rentang produk yang ditentukan dalam From klausa. Nilai DiscountedPrice anggota dihitung dalam Let klausa. Anggota Discount adalah nilai statis.

' 10% discount 
Dim discount_10 = 0.1
Dim priceList =
  From product In products
  Let DiscountedPrice = product.UnitPrice * (1 - discount_10)
  Select product.ProductName, Price = product.UnitPrice,
  Discount = discount_10, DiscountedPrice

Klausa Select memperkenalkan serangkaian variabel rentang baru untuk klausul kueri berikutnya, dan variabel rentang sebelumnya tidak lagi berada dalam cakupan. Klausa terakhir Select dalam ekspresi kueri menentukan nilai pengembalian kueri. Misalnya, kueri berikut mengembalikan nama perusahaan dan ID pesanan untuk setiap pesanan pelanggan yang totalnya melebihi 500. Klausa pertama Select mengidentifikasi variabel rentang untuk Where klausul dan klausa kedua Select . Klausa kedua Select mengidentifikasi nilai yang dikembalikan oleh kueri sebagai jenis anonim baru.

Dim customerList = From cust In customers, ord In cust.Orders
                   Select Name = cust.CompanyName,
                          Total = ord.Total, ord.OrderID
                   Where Total > 500
                   Select Name, OrderID

Select Jika klausa mengidentifikasi satu item untuk dikembalikan, ekspresi kueri mengembalikan kumpulan jenis item tunggal tersebut. Select Jika klausa mengidentifikasi beberapa item untuk dikembalikan, ekspresi kueri mengembalikan kumpulan jenis anonim baru, berdasarkan item yang dipilih. Misalnya, dua kueri berikut mengembalikan koleksi dari dua jenis berbeda berdasarkan Select klausa. Kueri pertama mengembalikan kumpulan nama perusahaan sebagai string. Kueri kedua mengembalikan kumpulan Customer objek yang diisi dengan nama perusahaan dan informasi alamat.

Dim customerNames = From cust In customers
                    Select cust.CompanyName

Dim customerInfo As IEnumerable(Of Customer) =
  From cust In customers
  Select New Customer With {.CompanyName = cust.CompanyName,
                             .Address = cust.Address,
                             .City = cust.City,
                             .Region = cust.Region,
                             .Country = cust.Country}

Contoh

Ekspresi kueri berikut menggunakan klausul From untuk mendeklarasikan variabel cust rentang untuk customers koleksi. Klausa Select memilih nama pelanggan dan nilai ID dan mengisi CompanyName kolom dan CustomerID variabel rentang baru. Pernyataan For Each mengulangi setiap objek yang dikembalikan dan menampilkan CompanyName kolom dan CustomerID untuk setiap rekaman.

Sub SelectCustomerNameAndId(ByVal customers() As Customer)
    Dim nameIds = From cust In customers
                  Select cust.CompanyName, cust.CustomerID
    For Each nameId In nameIds
        Console.WriteLine(nameId.CompanyName & ": " & nameId.CustomerID)
    Next
End Sub

Lihat juga