Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Combina duas coleções em uma única coleção hierárquica. A operação de junção é baseada em chaves correspondentes.
Sintaxe
Group Join element [As type] In collection _
On key1 Equals key2 [ And key3 Equals key4 [... ] ] _
Into expressionList
Partes
| Prazo | Definição |
|---|---|
element |
Obrigatório A variável de controle para a coleção que está sendo unida. |
type |
Opcional. O tipo de element. Se não type for especificado, o tipo de element é inferido de collection. |
collection |
Obrigatório A coleção a ser combinada com a coleção que está no lado esquerdo do Group Join operador. Uma Group Join cláusula pode ser aninhada em uma Join cláusula ou em outra Group Join cláusula. |
key1
Equals
key2
|
Obrigatório Identifica as chaves para as coleções ingressadas. Você deve usar o Equals operador para comparar as chaves das coleções ingressadas. Você pode combinar condições de junção usando o And operador para identificar várias chaves. O key1 parâmetro deve ser da coleção no lado esquerdo do Join operador. O key2 parâmetro deve ser da coleção no lado direito do Join operador.As chaves usadas na condição de junção podem ser expressões que incluem mais de um item da coleção. No entanto, cada expressão de chave pode conter apenas itens de 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 Group palavra-chave (<alias> = Group). Você também pode incluir funções de agregação a serem aplicadas ao grupo. |
Observações
A Group Join cláusula combina duas coleções com base na correspondência de valores de chave das coleções ingressadas. A coleção resultante pode conter um membro que faz referência a uma coleção de elementos da segunda coleção que correspondem ao valor da chave da primeira coleção. Você também pode especificar funções de agregação a serem aplicadas aos elementos agrupados da segunda coleção. Para obter informações sobre funções de agregação, consulte Cláusula Aggregate.
Considere, por exemplo, uma coleção de gerentes e uma coleção de funcionários. Elementos de ambas as coleções têm uma propriedade ManagerID que identifica os funcionários que se reportam a um gerente específico. Os resultados de uma operação de junção conteriam um resultado para cada gerente e funcionário com um valor managerID correspondente. Os resultados de uma Group Join operação conteriam a lista completa de gerentes. Cada resultado do gerente teria um membro que fazia referência à lista de funcionários correspondentes ao gerente específico.
A coleção resultante de uma Group Join operação pode conter qualquer combinação de valores da coleção identificada na From cláusula e as expressões identificadas na Into cláusula da Group Join cláusula. Para obter mais informações sobre expressões válidas para a Into cláusula, consulte Cláusula Aggregate.
Uma Group Join operação retornará todos os resultados da coleção identificada no lado esquerdo do Group Join operador. Isso é verdade mesmo se não houver correspondências na coleção que está sendo unida. Isso é como um LEFT OUTER JOIN SQL.
Você pode usar a Join cláusula para combinar coleções em uma única coleção. Isso é equivalente a um INNER JOIN SQL no SQL.
Exemplo
O exemplo de código a seguir une duas coleções usando a Group Join cláusula.
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