Klauzula sprzężenia grupy (Visual Basic)
Łączy dwie kolekcje do pojedynczego hierarchicznej kolekcji.Operacja join opiera pasujące klucze.
Group Join element [As type] In collection _
On key1 Equals key2 [ And key3 Equals key4 [... ] ] _
Into expressionList
Części
Termin |
Definicja |
element |
Wymagane.Zmienna kontrolna dla zbierania, że jest dołączony. |
type |
Opcjonalne.Typ element.Jeśli nie type jest określony typ element jest wywnioskować z collection. |
collection |
Wymagane.Zbioru do łączenia z kolekcji, która znajduje się na lewej stronie Group Join operatora.A Group Join klauzula może być zagnieżdżony w Join klauzuli lub w innym Group Join klauzuli. |
key1Equalskey2 |
Wymagane.Identyfikuje kluczy kolekcji, że jest dołączony.Należy użyć Equals operatora porównania kluczy z kolekcji, że jest dołączony.Warunki sprzężenia można połączyć za pomocą And operatora w celu identyfikacji wielu kluczy.key1 Parametr musi być z kolekcji po lewej stronie Join operatora.key2 Parametr musi być z kolekcji na prawej stronie Join operatora. Klawisze używane w warunku sprzężenia może być wyrażeń, które zawierają więcej niż jeden element z kolekcji.Każde wyrażenie klucza może jednak zawierać tylko elementy z jej odpowiednimi kolekcji. |
expressionList |
Wymagane.Jednego lub wielu wyrażeń, które identyfikują, jak są agregowane grup elementów z kolekcji.Aby zidentyfikować nazwa członka pogrupowane wyniki, należy użyć Group słowa kluczowego (<alias> = Group).Może również zawierać funkcje agregujące, aby zastosować do grupy. |
Uwagi
Group Join Klauzuli łączy dwie kolekcje oparte na dopasowanie wartości klucza z kolekcji, że jest dołączony.Wynikowy Kolekcja może zawierać element członkowski, który odwołuje się do kolekcji elementów z drugiego zbioru, zgodne z pierwszego zbioru wartości klucza.Można również określić funkcje agregujące, aby zastosować do zgrupowanych elementów z drugiego zbioru.Aby uzyskać informacje na temat funkcji agregujących, zobacz Klauzula agregacji (Visual Basic).
Należy wziąć pod uwagę, na przykład, Kolekcja menedżerów i zbiór pracowników.Elementy z obu kolekcje mają właściwość ManagerID, która identyfikuje pracowników, dla których sprawozdanie w szczególności menedżera.Wyniki operacji join zawierałaby wyniku dla każdego menedżera i pracownika z pasującą wartość ManagerID.Wyniki z Group Join operacji będzie zawierać pełną listę menedżerów.Wynik każdego menedżera miałoby element członkowski, który odwołanie do listy pracowników, które były dopasowania dla szczególnych menedżera.
Kolekcja, wynikające z Group Join operacji może zawierać dowolną kombinację wartości ze zbioru, identyfikowane w From klauzuli i wyrażenia, określone w Into klauzuli Group Join klauzuli.Aby uzyskać więcej informacji o wyrażeniach ważne dla Into klauzuli, zobacz Klauzula agregacji (Visual Basic).
A Group Join operacji zwróci wszystkie wyniki ze zbioru, identyfikowane po lewej stronie Group Join operatora.Ta zasada obowiązuje, nawet jeśli nie mają odpowiedników w kolekcji jest przyłączony.Przypomina to LEFT OUTER JOIN w języku SQL.
Można użyć Join klauzuli połączyć kolekcji do pojedynczego zbioru.Jest to równoważne z INNER JOIN w języku SQL.
Przykład
Poniższy przykład kodu łączy dwie kolekcje za pomocą Group Join klauzuli.
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
Zobacz też
Informacje
Wybierz klauzuli (Visual Basic)
Dołącz klauzulę (Visual Basic)
Grupuj według klauzuli (Visual Basic)
Koncepcje
Wprowadzenie do LINQ w języku Visual Basic