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