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