Megosztás a következőn keresztül:


Csoportbeillesztési záradék (Visual Basic)

Két gyűjteményt egyesít egyetlen hierarchikus gyűjteménybe. Az illesztési művelet egyező kulcsokon alapul.

Syntax

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

Részek

Időszak Definíció
element Szükséges. Az összekapcsolt gyűjtemény vezérlőváltozója.
type Opcionális. A típus.element Ha nincs type megadva, a függvény a következőből element collectionkövetkeztet: .
collection Szükséges. Az operátor bal oldalán Group Join található gyűjteményrel kombinálandó gyűjtemény. Egy Group Join záradék beágyazható egy Join záradékba vagy egy másik Group Join záradékba.
key1 Equals key2 Szükséges. Azonosítja az összekapcsolt gyűjtemények kulcsait. Az operátorral Equals össze kell hasonlítania a csatlakoztatott gyűjtemények kulcsait. Összekapcsolási feltételeket kombinálhat az And operátorral több kulcs azonosításához. A key1 paraméternek az operátor bal oldalán található gyűjteményből kell származnia Join . A key2 paraméternek az operátor jobb oldalán található gyűjteményből kell származnia Join .

Az illesztési feltételben használt kulcsok olyan kifejezések lehetnek, amelyek egynél több elemet tartalmaznak a gyűjteményből. Az egyes kulcskifejezések azonban csak a saját gyűjteményéből származó elemeket tartalmazhatnak.
expressionList Szükséges. Egy vagy több kifejezés, amely azonosítja a gyűjtemény elemeinek csoportjainak összesítését. A csoportosított eredmények tagnevének azonosításához használja a (<alias> = Group) kulcsszótGroup. A csoportra alkalmazandó összesítő függvényeket is felvehet.

Megjegyzések

A Group Join záradék két gyűjteményt egyesít az összekapcsolt gyűjtemények kulcsértékeinek megfelelő alapján. Az eredményként kapott gyűjtemény olyan tagot tartalmazhat, amely a második gyűjtemény elemeinek gyűjteményére hivatkozik, amelyek megfelelnek az első gyűjtemény kulcsértékének. A második gyűjtemény csoportosított elemeire alkalmazandó összesítő függvényeket is megadhat. Az összesítő függvényekkel kapcsolatos információkért lásd az Összesítési záradékot.

Fontolja meg például a vezetők és az alkalmazottak gyűjteményét. Mindkét gyűjtemény elemei rendelkeznek egy ManagerID tulajdonságkal, amely azonosítja azokat az alkalmazottakat, akik egy adott vezetőnek jelentenek. Az illesztési művelet eredményei minden vezető és alkalmazott esetében egyező ManagerID értékkel rendelkező eredményt tartalmaznak. A művelet eredményei Group Join a vezetők teljes listáját tartalmazzák. Minden vezető eredménye egy olyan tagot tartalmazna, aki az adott vezetőnek megfelelő alkalmazottak listájára hivatkozik.

A műveletből Group Join eredő gyűjtemény a záradékban From azonosított gyűjtemény értékeinek és a záradék záradékában Into azonosított kifejezéseknek bármilyen kombinációját tartalmazhatja Group Join . A záradék érvényes kifejezéseiről további információt az Into összesítő záradékban talál.

A Group Join művelet az operátor bal oldalán azonosított gyűjtemény összes eredményét visszaadja Group Join . Ez akkor is igaz, ha nincsenek egyezések a csatlakoztatott gyűjteményben. Ez olyan, mint egy LEFT OUTER JOIN SQL-ben.

A záradék használatával egyesítheti a Join gyűjteményeket egyetlen gyűjteményben. Ez egyenértékű az INNER JOIN SQL-ben.

Példa

Az alábbi példakód két gyűjteményt illeszt össze a Group Join záradék használatával.

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

Lásd még