Compartilhar via


Agrupando dados

Agrupamento refere-se a operação do colocar dados em grupos, de modo que os elementos em cada agrupar compartilham um atributo comum.

A ilustração a seguir mostra os resultados de uma sequência de caracteres de agrupamento.A chave para cada agrupar é o caractere.

Os métodos de operador de consulta padrão elementos de dados de agrupar são listados na seção seguinte.

Métodos

Nome do método

Descrição

Sintaxe de expressão de consulta translation from VPE for Csharp

Visual Basic Sintaxe de expressão de consulta

Mais informações

GroupBy

Grupos de elementos que compartilham um atributo comum.Cada agrupar é representado por um IGrouping<TKey, TElement> objeto.

group … by

- ou -

group … by … into …

Group … By … Into …

Enumerable.GroupBy

Queryable.GroupBy

ToLookup

Insere elementos em um Lookup<TKey, TElement> (um dicionário de um-para-muitos) com base em uma função do seletor de chave.

Não aplicável.

Não aplicável.

Enumerable.ToLookup

Exemplo da sintaxe de consulta expressão

O exemplo de código a seguir usa o group by cláusula translation from VPE for Csharp ou o Group By cláusula Visual Basic para números inteiros de agrupar em uma lista de acordo com a indefinido ou se elas ainda são.

Dim numbers As New System.Collections.Generic.List(Of Integer) _
    (New Integer() {35, 44, 200, 84, 3987, 4, 199, 329, 446, 208})

Dim query = From number In numbers _
            Group By Remainder = (number Mod 2) Into Group

Dim sb As New System.Text.StringBuilder()
For Each group In query
    sb.AppendLine(If(group.Remainder = 0, vbCrLf & "Even numbers:", vbCrLf & "Odd numbers:"))
    For Each num In group.Group
        sb.AppendLine(num)
    Next
Next

' Display the results.
MsgBox(sb.ToString())

' This code produces the following output:

' Odd numbers:
' 35
' 3987
' 199
' 329

' Even numbers:
' 44
' 200
' 84
' 4
' 446
' 208

List<int> numbers = new List<int>() { 35, 44, 200, 84, 3987, 4, 199, 329, 446, 208 };

IEnumerable<IGrouping<int, int>> query = from number in numbers
                                         group number by number % 2;

foreach (var group in query)
{
    Console.WriteLine(group.Key == 0 ? "\nEven numbers:" : "\nOdd numbers:");
    foreach (int i in group)
        Console.WriteLine(i);
}

/* This code produces the following output:

    Odd numbers:
    35
    3987
    199
    329

    Even numbers:
    44
    200
    84
    4
    446
    208
*/

Mais informações sobre o agrupar de dados

Consulte também

Conceitos

Visão geral de operadores de consulta padrão

Referência

cláusula de AAgruparar (Referência C#)

Agrupar por cláusula (Visual Basic)

System.Linq