Klausul Penggabungan Grup (Visual Basic)

Menggabungkan dua koleksi ke dalam satu koleksi hierarkis. Operasi gabungan didasarkan pada kunci yang cocok.

Sintaks

Group Join element [As type] In collection _  
  On key1 Equals key2 [ And key3 Equals key4 [... ] ] _  
  Into expressionList  

Generator

Term Definisi
element Harus diisi. Variabel kontrol untuk koleksi yang digabungkan.
type Opsional. Jenis element. Jika tidak ada type yang ditentukan, jenis element disimpulkan dari collection.
collection Harus diisi. Koleksi untuk digabungkan dengan koleksi yang ada di sisi kiri operator Group Join. Klausa Group Join dapat ditumpuk dalam klausul Join atau di klausa Group Join yang lain.
key1 Equals key2 Harus diisi. Mengidentifikasi kunci untuk koleksi yang sedang digabungkan. Anda harus menggunakan operator Equals untuk membandingkan kunci dari koleksi yang digabungkan. Anda dapat menggabungkan kondisi gabungan dengan menggunakan operator And untuk mengidentifikasi beberapa kunci. Parameter key1 harus berasal dari koleksi di sisi kiri operator Join. Parameter key2 harus berasal dari koleksi di sisi kanan operator Join.

Kunci yang digunakan dalam kondisi gabungan dapat berupa ekspresi yang menyertakan lebih dari satu item dari koleksi tersebut. Namun, setiap ekspresi kunci hanya dapat berisi item dari koleksi masing-masing.
expressionList Harus diisi. Satu atau beberapa ekspresi yang mengidentifikasi bagaimana pengumpulan grup elemen dari koleksi tersebut. Untuk mengidentifikasi nama anggota untuk hasil yang dikelompokkan, gunakan kata kunci Group (<alias> = Group). Anda juga dapat menyertakan fungsi agregat untuk diterapkan ke grup.

Keterangan

Klausa Group Join menggabungkan dua koleksi berdasarkan nilai kunci yang cocok dari koleksi yang digabungkan. Koleksi yang dihasilkan dapat berisi anggota yang mereferensikan kumpulan elemen dari koleksi kedua yang cocok dengan nilai kunci dari koleksi pertama. Anda juga dapat menentukan fungsi agregat untuk diterapkan ke elemen yang dikelompokkan dari koleksi kedua. Untuk informasi selengkapnya tentang fungsi agregat, lihat Klausul Agregat.

Pertimbangkan, misalnya, kumpulan manajer dan kumpulan karyawan. Elemen dari kedua koleksi memiliki properti ManagerID yang mengidentifikasi karyawan yang melapor ke manajer tertentu. Hasil dari operasi gabungan akan berisi hasil untuk setiap manajer dan karyawan dengan nilai ManagerID yang cocok. Hasil dari operasi Group Join akan berisi daftar lengkap manajer. Setiap hasil manajer akan memiliki anggota yang mereferensikan daftar karyawan yang cocok untuk manajer tertentu.

Koleksi yang dihasilkan dari operasi Group Join dapat berisi kombinasi nilai apa pun dari koleksi yang diidentifikasi dalam klausa From dan ekspresi yang diidentifikasi dalam klausul Into dari klausul Group Join. Untuk informasi selengkapnya tentang ekspresi yang valid untuk klausul Into, lihat Klausul Agregat.

Operasi Group Join akan mengembalikan semua hasil dari koleksi yang diidentifikasi di sisi kiri operator Group Join. Ini berlaku bahkan jika tidak ada kecocokan dalam koleksi yang digabungkan. Ini seperti LEFT OUTER JOIN di SQL.

Anda dapat menggunakan klausul Join untuk menggabungkan beberapa koleksi ke dalam satu koleksi. Ini setara dengan INNER JOIN dalam SQL.

Contoh

Contoh kode berikut menggabungkan dua koleksi dengan menggunakan klausa Group Join.

Dim customerList = From cust In customers
                   Group Join ord In orders On
                   cust.CustomerID Equals ord.CustomerID
                   Into CustomerOrders = Group,
                        OrderTotal = Sum(ord.Total)
                   Select cust.CompanyName, cust.CustomerID,
                          CustomerOrders, OrderTotal

For Each customer In customerList
    Console.WriteLine(customer.CompanyName &
                      " (" & customer.OrderTotal & ")")

    For Each order In customer.CustomerOrders
        Console.WriteLine(vbTab & order.OrderID & ": " & order.Total)
    Next
Next

Lihat juga