Compartilhar via


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)

Outros recursos

Consultas(Visual Basic)