Définir les opérations dans LINQ

Il existe quatre opérateurs pour les opérations d'ensemble, chacun produisant un résultat basé sur différents critères.

Opérateur La description Syntaxe d'expression de requête C # Syntaxe d'expression de requête VB
Distinct Résultats une liste de valeurs uniques d'une collection en filtrant les données en double le cas échéant N'est pas applicable Distinct
Sauf Compare les valeurs de deux collections et renvoie celles d'une collection qui ne sont pas dans l'autre collection N'est pas applicable N'est pas applicable
Couper Renvoie l'ensemble des valeurs trouvées pour être identiques dans deux collections séparées N'est pas applicable N'est pas applicable
syndicat Combine le contenu de deux collections différentes en une seule liste sans aucun contenu en double N'est pas applicable N'est pas applicable

Exemple de Distinct - Expression de requête

VB

Module Module1

   Sub Main()
  
      Dim classGrades = New System.Collections.Generic.List(Of Integer) From {63, 68, 71, 75, 68, 92, 75}

      Dim distinctQuery = From grade In classGrades 
                          Select grade Distinct

      Dim sb As New System.Text.StringBuilder("The distinct grades are: ")
	  
      For Each number As Integer In distinctQuery
         sb.Append(number & " ")
      Next

      MsgBox(sb.ToString())
	  
   End Sub
   
End Module

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

The distinct grades are: 63 68 71 75 92

Exemple de méthode Except - Enumerable.Except

C #

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

namespace Operators {
   class Program {
      static void Main(string[] args) {
      
         double[] numbers1 = { 2.0, 2.1, 2.2, 2.3, 2.4, 2.5 };
         double[] numbers2 = { 2.2 };

         IEnumerable<double> onlyInFirstSet = numbers1.Except(numbers2);

         foreach (double number in onlyInFirstSet)
            Console.WriteLine(number);
            Console.ReadLine();
      }
   }
}

VB

Module Module1

   Sub Main()
   
      Dim numbers1() As Double = {2.0, 2.1, 2.2, 2.3, 2.4, 2.5}
      Dim numbers2() As Double = {2.2}

      Dim onlyInFirstSet As IEnumerable(Of Double) = numbers1.Except(numbers2)

      Dim output As New System.Text.StringBuilder
	  
      For Each number As Double In onlyInFirstSet
         output.AppendLine(number)
         Console.WriteLine(number)
      Next
	  
      Console.ReadLine()
     
   End Sub
   
End Module

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

2
2.1
2.3
2.4
2.5

Exemple d'Intersect - Méthode Enumerable.Intersect

C #

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

namespace Operators {
   class Program {
      static void Main(string[] args) {

         int[] id1 = { 44, 26, 92, 30, 71, 38 };
         int[] id2 = { 39, 59, 83, 47, 26, 4, 30 };

         IEnumerable<int> both = id1.Intersect(id2);

         foreach (int id in both)
            Console.WriteLine(id);
            Console.ReadLine();
      }
   }
}

VB

Module Module1

   Sub Main()
   
      Dim id1() As Integer = {44, 26, 92, 30, 71, 38}
      Dim id2() As Integer = {39, 59, 83, 47, 26, 4, 30}

      Dim intersection As IEnumerable(Of Integer) = id1.Intersect(id2)

      Dim output As New System.Text.StringBuilder
	  
      For Each id As Integer In intersection
         output.AppendLine(id)
         Console.WriteLine(id)
      Next
     
      Console.ReadLine()
     
   End Sub
   
End Module

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

26
30

Exemple d'Union - Méthode Enumerable.Union

C #

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

namespace Operators {
   class Program {
      static void Main(string[] args) {
      
         int[] ints1 = { 5, 3, 9, 7, 5, 9, 3, 7 };
         int[] ints2 = { 8, 3, 6, 4, 4, 9, 1, 0 };

         IEnumerable<int> union = ints1.Union(ints2);

         foreach (int num in union) {
            Console.Write("{0} ", num);
            Console.Write("\n");
         }
			
         Console.ReadLine();
      }
   }
}

VB

Module Module1

   Sub Main()
   
      Dim ints1() As Integer = {5, 3, 9, 7, 5, 9, 3, 7}
      Dim ints2() As Integer = {8, 3, 6, 4, 4, 9, 1, 0}

      Dim union As IEnumerable(Of Integer) = ints1.Union(ints2)

      Dim output As New System.Text.StringBuilder
	  
      For Each num As Integer In union
         output.AppendLine(num & " ")
         Console.WriteLine(num & " ")
      Next
     
      Console.ReadLine()
	  
   End Sub
   
End Module

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

5
3 
9 
7 
8 
6 
4 
1 
0