Comparer deux listes en C#

Muhammad Maisam Abbas 16 février 2024
  1. Comparez des listes pour trouver des différences avec la méthode Linq en C#
  2. Comparez des listes pour trouver des différences avec la fonction List.Contains() en C#
Comparer deux listes en C#

Ce didacticiel abordera les méthodes permettant de comparer deux listes pour trouver des différences dans C#.

Comparez des listes pour trouver des différences avec la méthode Linq en C#

Considérons le scénario suivant, nous avons 2 listes, list1 et list2, et nous voulons savoir quels éléments de list1 ne sont pas présents dans list2 et quels éléments de list2 ne sont pas présents dans list1. Cela peut être fait à l’aide de la fonction Except() de Linq. La requête intégrée Linq ou langage est utilisée pour interroger les structures de données en C#. La fonction Except() renvoie un ensemble d’éléments d’une liste non présents dans l’autre liste. L’exemple de code suivant nous montre comment comparer deux listes pour les différences avec Linq en C#.

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

namespace compare_lists {
  class Program {
    static void Main(string[] args) {
      List<int> list1 = new List<int> { 1, 1, 2, 3, 4 };
      List<int> list2 = new List<int> { 3, 4, 5, 6 };
      List<int> firstNotSecond = list1.Except(list2).ToList();
      var secondNotFirst = list2.Except(list1).ToList();
      Console.WriteLine("Present in List1 But not in List2");
      foreach (var x in firstNotSecond) {
        Console.WriteLine(x);
      }
      Console.WriteLine("Present in List2 But not in List1");
      foreach (var y in secondNotFirst) {
        Console.WriteLine(y);
      }
    }
  }
}

Production:

Present in List1 But not in List2 1 2 Present in List2 But not in List1 5 6

Nous avons comparé les listes list1 et list2 pour leurs différences dans le code ci-dessus. Nous avons d’abord stocké les éléments présents dans list1 mais pas dans list2 dans la nouvelle liste firstNotSecond. Nous avons ensuite stocké les éléments présents dans list2 mais pas dans list1 dans la nouvelle liste secondNotFirst. Finalement, nous avons imprimé les éléments des listes firstNotSecond et secondNotFirst. Le seul inconvénient est que toutes les valeurs répétées dans une liste qui ne sont pas présentes dans l’autre liste ne seront imprimées qu’une seule fois.

Comparez des listes pour trouver des différences avec la fonction List.Contains() en C#

La fonction List.Contains() permet de déterminer si un élément est présent ou non dans une liste en C#. La fonction List.Contains(x) renvoie true si l’élément x est présent dans la liste et renvoie false si l’élément x n’est pas présent. Nous pouvons utiliser la méthode List.Contains() avec Linq pour déterminer quels éléments sont présents dans une liste et pas dans l’autre. L’exemple de code suivant nous montre comment comparer deux listes pour les différences avec la fonction List.Contains() en C#.

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

namespace compare_lists {
  class Program {
    static void Main(string[] args) {
      List<int> list1 = new List<int> { 1, 2, 3, 4 };
      List<int> list2 = new List<int> { 3, 4, 5, 6 };
      var firstNotSecond = list1.Where(i => !list2.Contains(i)).ToList();
      var secondNotFirst = list2.Where(i => !list1.Contains(i)).ToList();
      Console.WriteLine("Present in List1 But not in List2");
      foreach (var x in firstNotSecond) {
        Console.WriteLine(x);
      }
      Console.WriteLine("Present in List2 But not in List1");
      foreach (var y in secondNotFirst) {
        Console.WriteLine(y);
      }
    }
  }
}

Production:

Present in List1 But not in List2 1 1 2 Present in List2 But not in List1 5 6

Nous avons comparé les listes list1 et list2 pour leurs différences dans le code ci-dessus. Nous avons d’abord stocké les éléments présents dans list1 mais pas dans list2 dans la nouvelle liste firstNotSecond. Nous avons ensuite stocké les éléments qui étaient présents dans list2 mais pas dans list1 dans la nouvelle liste secondNotFirst. Finalement, nous avons imprimé les éléments des listes firstNotSecond et secondNotFirst. Ici, la sortie est répétée autant de fois que la valeur répétée. Cette méthode doit être préférée à la méthode précédente si nous voulons envisager de répéter des valeurs.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Article connexe - Csharp List