Cláusula Join Group (Visual Basic)

Combina duas coleções numa única coleção hierarquizada.A operação de associação é baseada em chaves correspondentes.

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

Partes

  • element
    Obrigatório.A variável de controle para a coleção sendo juntada.

  • type
    Opcional.O tipo de element.Se nenhum type for especificado, o tipo de element será inferido de collection.

  • collection
    Obrigatório.A coleção a combinar com a coleção identificada no lado esquerdo do operador Group Join.A cláusula Group Join pode ser aninhada em uma cláusula Join ou outra cláusula Group Join.

  • key1Equalskey2
    Obrigatório.Identifica chaves para as coleções que estão sendo combinadas.Você deve usar o operador Equals para comparar chaves das coleções que estão sendo combinadas.Você pode combinar condições de associação, usando o operador And para identificar várias chaves.O parâmetro key1 deve ser da coleção no lado esquerdo do operador Join.O parâmetro key2 deve ser da coleção no lado direito do operador Join.

    As chavesa usadas na condição de adição podem ser expressões que incluem mais de um item da coleção.Entretanto, cada expressão chave pode conter somente itens da sua respectiva coleção

  • expressionList
    Obrigatório.Uma ou mais expressões que identificam como os grupos de elementos da coleção são agregados.Para identificar um nome de membro para os resultados agrupados, use a palavra-chave Group (<alias> = Group).Você também pode incluir funções agregadas para aplicar ao grupo.

Comentários

A cláusula Group Join combina duas coleções baseadas nos valores das chaves que combinam das coleções sendo combinadas.A coleção resultante pode conter um membro que referencia uma coleção de elementos da segunda coleção que corresponde ao valor de chave da coleção primeiro.Você também pode especificar funções agregadas para aplicar aos elementos agrupados da segunda coleção.Para obter mais informações sobre funções agregadas, consulte Aggregate Clause (Visual Basic).

Considere, por exemplo, uma coleção de gerentes e uma de funcionários.Elementos de ambos os conjuntos possuem uma propriedade ManagerID que identifica os funcionários que reportam a um gerente específico.Os resultados de uma operação de assovciação conterá um resultado para cada gerente e funcionário com um valor coincidente ManagerID.Os resultados de uma operação Group Join contém a lista completa dos gerentes.Cada gerente no resultado teria como membro membro a lista de funcionários que correpondem ao próprio.

O conjunto resultante de uma operação Group Join pode conter qualquer combinação de valores de coleção identificados na cláusula From e as expressões identificadas na cláusula Into da cláusula Group Join.Para obter mais informações sobre expressões válidas para a cláusula Into, consulte Aggregate Clause (Visual Basic).

Uma operação Group Join retornará todos os resultados da coleção identificada no lado esquerdo do operador Group Join.Isso é verdadeiro mesmo se não houver nenhuma correspondência na coleção sendo associado.É como um LEFT OUTER JOIN no SQL.

Você pode usar a cláusula Join para combinar coleções em uma única coleção hierárquica.Isso é equivalente a um INNER JOIN no SQL.

Exemplo

O exemplo de código a seguir une duas coleções usando a cláusula Group Join.

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

Consulte também

Conceitos

Introdução ao LINQ no Visual Basic

Referência

Cláusula Select (Visual Basic)

A partir da cláusula (Visual Basic)

Cláusula de adição (Visual Basic)

Clúasula Where (Visual Basic)

agrupar By cláusula (Visual Basic)

Outros recursos

Consultas(Visual Basic)