Bagikan melalui


Dari Klausul (Visual Basic)

Menentukan satu atau beberapa variabel rentang dan koleksi yang akan dikueri.

Sintaksis

From element [ As type ] In collection [ _ ]  
  [, element2 [ As type2 ] In collection2 [, ... ] ]  

Bagian

Istilah Definisi
element Dibutuhkan. Variabel rentang yang digunakan untuk melakukan iterasi melalui elemen koleksi. Variabel rentang digunakan untuk merujuk ke setiap anggota collection saat kueri berulang melalui collection. Harus merupakan jenis yang dapat dijumlahkan.
type Fakultatif. Jenis element. Jika tidak type ditentukan, jenis element disimpulkan dari collection.
collection Dibutuhkan. Mengacu pada koleksi yang akan dikueri. Harus merupakan jenis yang dapat dijumlahkan.

Komentar

Klausa From digunakan untuk mengidentifikasi data sumber untuk kueri dan variabel yang digunakan untuk merujuk ke elemen dari kumpulan sumber. Variabel ini disebut variabel rentang. Klausa From diperlukan untuk kueri, kecuali ketika Aggregate klausul digunakan untuk mengidentifikasi kueri yang hanya mengembalikan hasil agregat. Untuk informasi selengkapnya, lihat Klausul Agregat.

Anda dapat menentukan beberapa From klausa dalam kueri untuk mengidentifikasi beberapa koleksi yang akan digabungkan. Ketika beberapa koleksi ditentukan, koleksi tersebut diulang secara independen, atau Anda dapat menggabungkannya jika terkait. Anda dapat menggabungkan koleksi secara implisit dengan menggunakan Select klausa, atau secara eksplisit dengan menggunakan Join klausa atau Group Join . Sebagai alternatif, Anda dapat menentukan beberapa variabel rentang dan koleksi dalam satu From klausa, dengan setiap variabel rentang terkait dan koleksi yang dipisahkan dari yang lain dengan koma. Contoh kode berikut menunjukkan kedua opsi sintaks untuk From klausa.

' Multiple From clauses in a query.
Dim result = From var1 In collection1, var2 In collection2

' Equivalent syntax with a single From clause.
Dim result2 = From var1 In collection1
              From var2 In collection2

Klausa From menentukan cakupan kueri, yang mirip dengan cakupan perulangan For . Oleh karena itu, setiap element variabel rentang dalam cakupan kueri harus memiliki nama yang unik. Karena Anda dapat menentukan beberapa From klausa untuk kueri, klausul berikutnya From dapat merujuk ke variabel rentang dalam From klausa, atau klausul tersebut dapat merujuk ke variabel rentang dalam klausa sebelumnya From . Misalnya, contoh berikut menunjukkan klausa berlapis From di mana koleksi dalam klausa kedua didasarkan pada properti variabel rentang dalam klausa pertama.

Dim allOrders = From cust In GetCustomerList()
                From ord In cust.Orders
                Select ord

Setiap From klausa dapat diikuti oleh kombinasi klausul kueri tambahan untuk menyempurnakan kueri. Anda bisa menyempurnakan kueri dengan cara berikut:

  • Gabungkan beberapa koleksi secara implisit dengan menggunakan From klausa dan Select , atau secara eksplisit dengan menggunakan Join klausa atau Group Join .

  • Gunakan klausa Where untuk memfilter hasil kueri.

  • Urutkan hasil dengan menggunakan Order By klausa.

  • Kelompokkan hasil serupa bersama-sama dengan menggunakan Group By klausul .

  • Aggregate Gunakan klausa untuk mengidentifikasi fungsi agregat untuk mengevaluasi seluruh hasil kueri.

  • Let Gunakan klausul untuk memperkenalkan variabel iterasi yang nilainya ditentukan oleh ekspresi alih-alih koleksi.

  • Distinct Gunakan klausa untuk mengabaikan hasil kueri duplikat.

  • Identifikasi bagian dari hasil yang akan dikembalikan dengan menggunakan Skipklausa , , TakeSkip While, dan Take While .

Contoh

Ekspresi kueri berikut menggunakan klausul From untuk mendeklarasikan variabel cust rentang untuk setiap Customer objek dalam customers koleksi. Klausul Where menggunakan variabel rentang untuk membatasi output kepada pelanggan dari wilayah yang ditentukan. Perulangan For Each menampilkan nama perusahaan untuk setiap pelanggan dalam hasil kueri.

Sub DisplayCustomersForRegion(ByVal customers As List(Of Customer),
                              ByVal region As String)

    Dim customersForRegion = From cust In customers
                             Where cust.Region = region

    For Each cust In customersForRegion
        Console.WriteLine(cust.CompanyName)
    Next
End Sub

Lihat juga