Agrupar operadores en LINQ

Los operadores colocan los datos en algunos grupos basándose en un atributo compartido común.

Operador Descripción Sintaxis de expresión de consulta de C # Sintaxis de expresión de consulta de VB
Agrupar por Organizar una secuencia de elementos en grupos y devolverlos como una colección IEnumerable de tipo IGrouping <clave, elemento> agrupar ... por -o- grupo ... por ... en ... Agrupar ... Por ... En ...
Para buscar Ejecutar una operación de agrupación en la que se devuelve una secuencia de pares de claves. No aplica No aplica

Ejemplo de GroupBy - Expresión de consulta

C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Operators {
   class Program {
      static void Main(string[] args) {
      
         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);
         }
			
         Console.ReadLine();                
      }
   }
}

VB

Module Module1
   Sub Main()
      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
     
      For Each group In query
         Console.WriteLine(If(group.Remainder = 0, vbCrLf &"Even numbers:", vbCrLf &"Odd numbers:"))
		 
         For Each num In group.Group           
            Console.WriteLine(num)
         Next 
		 
      Next
	  
      Console.ReadLine()
	  
   End Sub
   
End Module

Cuando el código anterior en C # o VB se compila y ejecuta, produce el siguiente resultado:

Odd numbers: 
35 
3987 
199 
329 

Even numbers: 
44 
200 
84 
4 
446 
208