Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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