Regroupement d'opérateurs dans LINQ

Les opérateurs placent les données dans certains groupes en fonction d'un attribut partagé commun.

Opérateur La description Syntaxe d'expression de requête C # Syntaxe d'expression de requête VB
Par groupe Organisez une séquence d'éléments en groupes et retournez-les sous la forme d'une collection IEnumerable de type IGrouping <key, element> grouper… par -ou- grouper… par… en… Regrouper… par… en…
Pour rechercher Exécuter une opération de regroupement dans laquelle une séquence de paires de clés est renvoyée N'est pas applicable N'est pas applicable

Exemple de GroupBy - Expression de requête

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

Lorsque le code ci-dessus en C # ou VB est compilé et exécuté, il produit le résultat suivant -

Odd numbers: 
35 
3987 
199 
329 

Even numbers: 
44 
200 
84 
4 
446 
208