Group Join (Cláusula, Visual Basic)Group Join Clause (Visual Basic)

Combina dos colecciones en una sola colección jerárquica.Combines two collections into a single hierarchical collection. La operación de combinación se basa en las claves coincidentes.The join operation is based on matching keys.

SintaxisSyntax

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

ElementosParts

TérminoTerm DefiniciónDefinition
element Obligatorio.Required. Variable de control de la colección que se va a combinar.The control variable for the collection being joined.
type Opcional.Optional. Tipo de element.The type of element. Si no se especifica ningún type, el tipo de element se deduce de collection.If no type is specified, the type of element is inferred from collection.
collection Obligatorio.Required. Colección que se va a combinar con la colección que se encuentra en el lado izquierdo del operador Group Join.The collection to combine with the collection that is on the left side of the Group Join operator. Una cláusula Group Join puede estar anidada en una cláusula Join o en otra cláusula Group Join.A Group Join clause can be nested in a Join clause or in another Group Join clause.
key1 Equals key2key1 Equals key2 Obligatorio.Required. Identifica las claves para las colecciones que se están combinando.Identifies keys for the collections being joined. Debe utilizar el operador Equals para comparar las claves de las colecciones que se están combinando.You must use the Equals operator to compare keys from the collections being joined. Puede combinar condiciones de combinación mediante el operador And para identificar varias claves.You can combine join conditions by using the And operator to identify multiple keys. El parámetro key1 debe ser de la colección en el lado izquierdo del operador Join.The key1 parameter must be from the collection on the left side of the Join operator. El parámetro key2 debe ser de la colección del lado derecho del operador Join.The key2 parameter must be from the collection on the right side of the Join operator.

Las claves utilizadas en la condición de combinación pueden ser expresiones que incluyen más de un elemento de la colección.The keys used in the join condition can be expressions that include more than one item from the collection. Sin embargo, cada expresión clave solo puede contener elementos de su colección respectiva.However, each key expression can contain only items from its respective collection.
expressionList Obligatorio.Required. Una o más expresiones que identifican el modo en que se agregan los grupos de elementos de la colección.One or more expressions that identify how the groups of elements from the collection are aggregated. Para identificar un nombre de miembro para los resultados agrupados, use la palabra clave Group (<alias> = Group).To identify a member name for the grouped results, use the Group keyword (<alias> = Group). También puede incluir funciones de agregado para aplicar al grupo.You can also include aggregate functions to apply to the group.

ComentariosRemarks

La cláusula Group Join combina dos colecciones basadas en los valores de clave coincidentes de las colecciones que se van a combinar.The Group Join clause combines two collections based on matching key values from the collections being joined. La colección resultante puede contener un miembro que hace referencia a una colección de elementos de la segunda colección que coinciden con el valor de clave de la primera colección.The resulting collection can contain a member that references a collection of elements from the second collection that match the key value from the first collection. También puede especificar las funciones de agregado que se van a aplicar a los elementos agrupados de la segunda colección.You can also specify aggregate functions to apply to the grouped elements from the second collection. Para obtener información sobre las funciones de agregado, vea cláusula Aggregate.For information about aggregate functions, see Aggregate Clause.

Considere, por ejemplo, una colección de administradores y una colección de empleados.Consider, for example, a collection of managers and a collection of employees. Los elementos de ambas colecciones tienen una propiedad ManagerID que identifica a los empleados que informan a un administrador determinado.Elements from both collections have a ManagerID property that identifies the employees that report to a particular manager. Los resultados de una operación de combinación contendrían un resultado para cada administrador y empleado con un valor de ManagerID coincidente.The results from a join operation would contain a result for each manager and employee with a matching ManagerID value. Los resultados de una operación de Group Join contienen la lista completa de administradores.The results from a Group Join operation would contain the complete list of managers. Cada resultado de administrador tendría un miembro que hacía referencia a la lista de empleados que coincidían con el administrador específico.Each manager result would have a member that referenced the list of employees that were a match for the specific manager.

La colección resultante de una operación de Group Join puede contener cualquier combinación de valores de la colección identificada en la cláusula From y las expresiones identificadas en la cláusula Into de la cláusula Group Join.The collection resulting from a Group Join operation can contain any combination of values from the collection identified in the From clause and the expressions identified in the Into clause of the Group Join clause. Para obtener más información sobre las expresiones válidas para la cláusula Into, consulte Aggregate (cláusula).For more information about valid expressions for the Into clause, see Aggregate Clause.

Una operación Group Join devolverá todos los resultados de la colección identificada en el lado izquierdo del operador Group Join.A Group Join operation will return all results from the collection identified on the left side of the Group Join operator. Esto es así incluso si no hay ninguna coincidencia en la colección que se está combinando.This is true even if there are no matches in the collection being joined. Esto es como un LEFT OUTER JOIN en SQL.This is like a LEFT OUTER JOIN in SQL.

Puede usar la cláusula Join para combinar colecciones en una sola colección.You can use the Join clause to combine collections into a single collection. Esto es equivalente a un INNER JOIN en SQL.This is equivalent to an INNER JOIN in SQL.

EjemploExample

En el ejemplo de código siguiente se combinan dos colecciones mediante la cláusula Group Join.The following code example joins two collections by using the Group Join clause.

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

Vea tambiénSee also