Group Join Tümcesi (Visual Basic)
İki koleksiyonu tek bir hiyerarşik koleksiyonda birleştirir. Birleştirme işlemi eşleşen anahtarları temel alır.
Sözdizimi
Group Join element [As type] In collection _
On key1 Equals key2 [ And key3 Equals key4 [... ] ] _
Into expressionList
Parça
Süre | Tanım |
---|---|
element |
Gerekli. Birleştirilen koleksiyonun denetim değişkeni. |
type |
isteğe bağlı. türü.element Belirtilmezse type , türü element türünden collection çıkarılır. |
collection |
Gerekli. İşlecin sol tarafındaki Group Join koleksiyonla birleştirecek koleksiyon. Yan Group Join tümce bir yan tümceye veya başka Group Join bir Join yan tümceye iç içe yerleştirilmiş olabilir. |
key1 Equals key2 |
Gerekli. Birleştirilmekte olan koleksiyonların anahtarlarını tanımlar. Birleştirilmekte olan Equals koleksiyonların anahtarlarını karşılaştırmak için işlecini kullanmanız gerekir. Birden çok anahtarı tanımlamak için işlecini And kullanarak birleştirme koşullarını birleştirebilirsiniz. parametresi, key1 işlecin sol tarafındaki Join koleksiyondan olmalıdır. parametresi, key2 işlecin sağ tarafındaki Join koleksiyondan olmalıdır.Birleştirme koşulunda kullanılan anahtarlar, koleksiyondan birden fazla öğe içeren ifadeler olabilir. Ancak, her anahtar ifadesi yalnızca ilgili koleksiyonundaki öğeleri içerebilir. |
expressionList |
Gerekli. Koleksiyondaki öğe gruplarının nasıl toplandığını tanımlayan bir veya daha fazla ifade. Gruplandırılmış sonuçların üye adını tanımlamak için (<alias> = Group anahtar sözcüğünü Group kullanın. Gruba uygulanacak toplama işlevlerini de ekleyebilirsiniz. |
Açıklamalar
yan tümcesi Group Join
, birleştirilmekte olan koleksiyonlardaki eşleşen anahtar değerlerine göre iki koleksiyonu birleştirir. Sonuçta elde edilen koleksiyon, ikinci koleksiyondaki ilk koleksiyondaki anahtar değeriyle eşleşen bir öğe koleksiyonuna başvuran bir üye içerebilir. İkinci koleksiyondaki gruplandırılmış öğelere uygulanacak toplama işlevlerini de belirtebilirsiniz. Toplama işlevleri hakkında bilgi için bkz . Toplama Yan Tümcesi.
Örneğin, bir yönetici koleksiyonu ve bir çalışan koleksiyonu düşünün. Her iki koleksiyondaki öğeler, belirli bir yöneticiye rapor veren çalışanları tanımlayan bir ManagerID özelliğine sahiptir. Birleştirme işleminden elde edilen sonuçlar, her yönetici ve çalışan için eşleşen bir ManagerID değerine sahip bir sonuç içerir. Bir Group Join
işlemin sonuçları, yöneticilerin tam listesini içerir. Her yönetici sonucu, belirli bir yöneticiyle eşleşen çalışanlar listesine başvuran bir üyeye sahip olur.
Bir Group Join
işlemden elde edilen koleksiyon, yan tümcesinde tanımlanan koleksiyondaki From
değerlerin herhangi bir bileşimini ve yan tümcesinde Group Join
tanımlanan Into
ifadeleri içerebilir. yan tümcesi Into
için geçerli ifadeler hakkında daha fazla bilgi için bkz . Toplama Yan Tümcesi.
bir Group Join
işlem, işlecin sol tarafında Group Join
tanımlanan koleksiyondaki tüm sonuçları döndürür. Bu, birleştirilmekte olan koleksiyonda eşleşme olmasa bile geçerlidir. Bu, SQL'deki gibi.LEFT OUTER JOIN
Yan tümcesini Join
kullanarak koleksiyonları tek bir koleksiyonda birleştirebilirsiniz. Bu, SQL'deki ile INNER JOIN
eşdeğerdir.
Örnek
Aşağıdaki kod örneği yan tümcesini kullanarak iki koleksiyonu birleştirir 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