Agrupar datos (C#)Grouping Data (C#)

El agrupamiento hace referencia a la operación de colocar los datos en grupos de manera que los elementos de cada grupo compartan un atributo común.Grouping refers to the operation of putting data into groups so that the elements in each group share a common attribute.

La ilustración siguiente muestra los resultados de agrupar una secuencia de caracteres.The following illustration shows the results of grouping a sequence of characters. La clave de cada grupo es el carácter.The key for each group is the character.

Diagrama que muestra una operación de agrupación de LINQ.

Los métodos de operador de consulta estándar que agrupan elementos de datos se enumeran en la sección siguiente.The standard query operator methods that group data elements are listed in the following section.

MétodosMethods

Nombre del métodoMethod Name DescripciónDescription Sintaxis de la expresión de consulta de C#C# Query Expression Syntax Más informaciónMore Information
GroupByGroupBy Agrupa los elementos que comparten un atributo común.Groups elements that share a common attribute. Cada grupo se representa mediante un objeto IGrouping<TKey,TElement>.Each group is represented by an IGrouping<TKey,TElement> object. group … by

o bien-or-

group … by … into …
Enumerable.GroupBy

Queryable.GroupBy
ToLookupToLookup Inserta elementos a una Lookup<TKey,TElement> (un diccionario uno a varios) basándose en una función de selector de claves.Inserts elements into a Lookup<TKey,TElement> (a one-to-many dictionary) based on a key selector function. No es aplicable.Not applicable. Enumerable.ToLookup

Ejemplo de sintaxis de expresiones de consultaQuery Expression Syntax Example

El ejemplo de código siguiente usa la cláusula group by para agrupar los enteros de una lista según sean pares o impares.The following code example uses the group by clause to group integers in a list according to whether they are even or odd.

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  
*/  

Vea tambiénSee also