Gruppkopplingssats (Visual Basic)
Kombinerar två samlingar till en enda hierarkisk samling. Kopplingsåtgärden baseras på matchande nycklar.
Syntax
Group Join element [As type] In collection _
On key1 Equals key2 [ And key3 Equals key4 [... ] ] _
Into expressionList
Delar
Period | Definition |
---|---|
element |
Obligatoriskt. Kontrollvariabeln för samlingen som ansluts. |
type |
Valfritt. Typen av element . Om nej type anges härleds typen av element från collection . |
collection |
Obligatoriskt. Samlingen som ska kombineras med samlingen som finns till vänster om operatorn Group Join . En Group Join sats kan kapslas i en Join sats eller i en annan Group Join sats. |
key1 Equals key2 |
Obligatoriskt. Identifierar nycklar för de samlingar som ansluts. Du måste använda operatorn Equals för att jämföra nycklar från de samlingar som är anslutna. Du kan kombinera kopplingsvillkor med hjälp av operatorn And för att identifiera flera nycklar. Parametern key1 måste vara från samlingen till vänster om operatorn Join . Parametern key2 måste vara från samlingen till höger om operatorn Join .Nycklarna som används i kopplingsvillkoret kan vara uttryck som innehåller fler än ett objekt från samlingen. Varje nyckeluttryck kan dock bara innehålla objekt från respektive samling. |
expressionList |
Obligatoriskt. Ett eller flera uttryck som identifierar hur grupper av element från samlingen aggregeras. Om du vill identifiera ett medlemsnamn för de grupperade resultaten använder du nyckelordet Group (<alias> = Group ). Du kan också inkludera aggregeringsfunktioner som ska tillämpas på gruppen. |
Kommentarer
- Group Join
satsen kombinerar två samlingar baserat på matchande nyckelvärden från samlingarna som kopplas. Den resulterande samlingen kan innehålla en medlem som refererar till en samling element från den andra samlingen som matchar nyckelvärdet från den första samlingen. Du kan också ange aggregeringsfunktioner som ska tillämpas på grupperade element från den andra samlingen. Information om aggregeringsfunktioner finns i Aggregeringssatsen.
Överväg till exempel en samling chefer och en samling anställda. Element från båda samlingarna har en ManagerID-egenskap som identifierar de anställda som rapporterar till en viss chef. Resultatet från en kopplingsåtgärd skulle innehålla ett resultat för varje chef och medarbetare med ett matchande ManagerID-värde. Resultatet från en Group Join
åtgärd skulle innehålla den fullständiga listan över chefer. Varje chefsresultat skulle ha en medlem som refererade till listan över anställda som var en matchning för den specifika chefen.
Samlingen som är resultatet av en Group Join
åtgärd kan innehålla valfri kombination av värden från samlingen som identifieras i From
-satsen och de uttryck som identifieras i -satsen Group Join
i Into
-satsen. Mer information om giltiga uttryck för Into
-satsen finns i Aggregerad sats.
En Group Join
åtgärd returnerar alla resultat från samlingen som identifieras till vänster om operatorn Group Join
. Detta gäller även om det inte finns några matchningar i samlingen som ansluts. Det här är som en LEFT OUTER JOIN
i SQL.
Du kan använda Join
-satsen för att kombinera samlingar till en enda samling. Detta motsvarar en INNER JOIN
i SQL.
Exempel
I följande kodexempel kopplas två samlingar med hjälp Group Join
av -satsen.
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