Group Join Tümcesi (Visual Basic)

İki koleksiyonu tek bir hiyerarşik koleksiyonda birleştirir. Birleştirme işlemi eşleşen anahtarları temel alan bir işlemdir.

Syntax

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

Bölümler

Süre Tanım
element Gereklidir. Bir araya olan koleksiyon için denetim değişkeni.
type İsteğe bağlı. elementtürü. typebelirtilmezse, element türünden collection belirtilir.
collection Gereklidir. işlecinin sol tarafındaki koleksiyonla birleştirilen Group Join koleksiyon. Yan Group Join tümcesi bir yan tümcesinde veya Join başka bir yan tümcede iç içe geçmiş Group Join olabilir.
key1 Equals key2 Gereklidir. Bir araya olan koleksiyonların anahtarlarını tanımlar. Birleştirilen Equals koleksiyonlardan anahtarları karşılaştırmak için işleci kullan gerekir. Birden çok anahtarı tanımlamak için işleci kullanarak And birleştirme koşullarını birleştirin. key1parametresi, işlecinin sol tarafındaki koleksiyondan Join olmalıdır. parametresi key2 işlecinin sağ tarafındaki koleksiyondan Join 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 koleksiyonundan öğeleri içerebilir.
expressionList Gereklidir. Koleksiyondan öğe gruplarının nasıl toplanmış olduğunu belirlemek için bir veya daha fazla ifade. Grup yapılan sonuçlar için üye adını tanımlamak üzere () anahtar Group sözcüğünü <alias> = Group kullanın. Gruba uygulanacak toplama işlevlerini de dahil edersiniz.

Açıklamalar

yan Group Join tümcesi, birleştirilmiş koleksiyonlardan eşleşen anahtar değerlerine göre iki koleksiyonu birleştirir. Sonuçta elde edilen koleksiyon, birinci koleksiyondan anahtar değeriyle eşan ikinci koleksiyondan bir öğe koleksiyonuna başvurulan bir üye içerebilir. İkinci koleksiyondan gruplanmış öğelere uygulanacak toplama işlevlerini de belirtebilirsiniz. Toplama işlevleri hakkında bilgi için bkz. Aggregate Clause.

Örneğin, bir yönetici koleksiyonu ve çalışan koleksiyonu düşünün. Her iki koleksiyondan da belirli bir yöneticiye rapor alan çalışanları tanımlayan bir ManagerID özelliği vardır. Birleştirme işlemi sonuçları, her yönetici ve çalışan için eşleşen bir ManagerID değerine sahip bir sonuç içerir. Bir işlemden Group Join eldeki sonuçlar, yöneticilerin tam listesini içerir. Her yönetici sonucu, belirli bir yöneticiyle eşanan çalışan listesine başvurulan bir üyeye sahip olur.

Bir işlemden elde edilen koleksiyon, yan tümcesinde tanımlanan koleksiyondan ve yan tümcesinde tanımlanan ifadelerden herhangi Group Join From bir değer Into Group Join birleşimini içerebilir. yan tümcesi için geçerli ifadeler hakkında daha fazla Into bilgi için bkz. Aggregate Clause.

Bir Group Join işlem, işlecinin sol tarafında tanımlanan koleksiyondan gelen tüm sonuçları Group Join geri verir. Bu durum, bir araya olan koleksiyonda eşleşme olmasa bile doğrudur. Bu, bir in LEFT OUTER JOIN SQL.

Koleksiyonları tek Join bir koleksiyonda birleştirmek için yan tümcesini kullanabilirsiniz. Bu, bir in INNER JOIN SQL.

Örnek

Aşağıdaki kod örneği yan tümcesini kullanarak iki koleksiyonu Group Join bir arada sunar.

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.