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

Ayrıca bkz.