Group Join — Klauzula (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 Aggregate — Klauzula (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 Aggregate — Klauzula (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

Select — Klauzula (Visual Basic)

From — Klauzula (Visual Basic)

Join — Klauzula (Visual Basic)

Where — Klauzula (Visual Basic)

Group By — Klauzula (Visual Basic)

Koncepcje

Wprowadzenie do LINQ w Visual Basic

Inne zasoby

Zapytania (Visual Basic)