agrupar By cláusula (Visual Basic)
Agrupa os elementos de um resultado de consulta.Também pode ser usado para aplicar funções agregadas a cada agrupar.A operação de agrupamento se baseia em uma ou mais chaves.
Group [ listField1 [, listField2 [...] ] By keyExp1 [, keyExp2 [...] ]
Into aggregateList
Partes
listField1, listField2
Opcional.Um ou mais campos da consulta variável ou variáveis explicitamente identificam os campos a serem incluídas no resultado agrupado.Se nenhum campo for especificado, todos os campos de variável de consulta ou variáveis são incluídos no resultado agrupado.keyExp1
Obrigatório.Uma expressão que identifica a chave a ser usada para determinar os grupos de elementos.Você pode especificar mais de uma chave para especificar uma chave composta.keyExp2
Opcional.Uma ou mais teclas adicionais que são combinadas com keyExp1 Para criar uma chave composta.aggregateList
Obrigatório.Uma ou mais expressões identificam como os grupos são agregados.Para identificar um nome de membro para os resultados agrupados, use o Group palavra-chave, que pode ser uma das seguintes formas:Into Group
Você também pode incluir funções agregadas para aplicar ao grupo.
Comentários
Você pode usar o Group By cláusula dividir os resultados de uma consulta em grupos. O agrupamento se baseia em uma chave ou uma chave composta que consiste em várias chaves.Elementos associados com valores de chave de correspondência são incluídos no mesmo agrupar.
Você usa o aggregateList parâmetro das Into cláusula e o Group palavra-chave para identificar o nome do membro que é usado para referenciar o agrupar. Você também pode incluir funções agregadas no Into cláusula para calcular valores para os elementos agrupados. Para obter uma lista de funções agregadas padrão, consulte Aggregate Clause (Visual Basic).
Exemplo
O exemplo de código a seguir agrupa uma lista de clientes com base em sua localização (Country) e fornece uma contagem dos clientes em cada agrupar.Os resultados são ordenados por nome do Country.Os resultados agrupados são ordenados por nome de cidade.
Public Sub GroupBySample()
Dim customers = GetCustomerList()
Dim customersByCountry = From cust In customers _
Order By cust.City _
Group By CountryName = cust.Country _
Into RegionalCustomers = Group, Count() _
Order By CountryName
For Each country In customersByCountry
Console.WriteLine(country.CountryName & _
" (" & country.Count & ")" & vbCrLf)
For Each customer In country.RegionalCustomers
Console.WriteLine(vbTab & customer.CompanyName & _
" (" & customer.City & ")")
Next
Next
End Sub
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)
Ordem By cláusula (Visual Basic)
Aggregate Clause (Visual Basic)
Cláusula Join Group (Visual Basic)