Confrontare due liste in C#

Muhammad Maisam Abbas 16 febbraio 2024
  1. Confronta gli liste per trovare le differenze con il metodo Linq in C#
  2. Confronta gli liste per trovare le differenze con la funzione List.Contains() in C#
Confrontare due liste in C#

Questo tutorial discuterà i metodi per confrontare due liste per trovare le differenze in C#.

Confronta gli liste per trovare le differenze con il metodo Linq in C#

Considera il seguente scenario, abbiamo 2 liste, list1 e list2, e vogliamo sapere quali elementi della list1 non sono presenti in list2 e quali elementi di list2 non sono presenti in list1. Può essere fatto con l’aiuto della funzione Except() in Linq. La query Linq o integrata nel linguaggio viene utilizzata per eseguire query sulle strutture dati in C#. La funzione Except() restituisce un insieme di elementi di una lista non presenti nell’altra lista. L’esempio di codice seguente mostra come confrontare due liste per le differenze con Linq in 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);
      }
    }
  }
}

Produzione:

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

Abbiamo confrontato le liste list1 e list2 per le loro differenze nel codice di cui sopra. Per prima cosa abbiamo memorizzato gli elementi presenti in list1 ma non in list2 nella nuova lista firstNotSecond. Abbiamo quindi memorizzato gli elementi presenti in list2 ma non in list1 nella nuova lista secondNotFirst. Alla fine, abbiamo stampato gli elementi di entrambi gli liste firstNotSecond e secondNotFirst. L’unico inconveniente è che tutti i valori ripetuti in una lista che non sono presenti nell’altro elenco verranno stampati solo una volta.

Confronta gli liste per trovare le differenze con la funzione List.Contains() in C#

La funzione List.Contains() viene utilizzata per determinare se un elemento è presente in una lista o meno in C#. La funzione List.Contains(x) restituisce true se l’elemento x è presente nella lista e restituisce false se l’elemento x non è presente. Possiamo usare il metodo List.Contains() con Linq per determinare quali elementi sono presenti in una lista e non nell’altra. Il seguente esempio di codice ci mostra come possiamo confrontare due liste per le differenze con la funzione List.Contains() in 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);
      }
    }
  }
}

Produzione:

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

Abbiamo confrontato le liste list1 e list2 per le loro differenze nel codice di cui sopra. Per prima cosa abbiamo memorizzato gli elementi presenti in list1 ma non in list2 nella nuova lista firstNotSecond. Abbiamo quindi memorizzato gli elementi che erano presenti in list2 ma non in list1 nella nuova lista secondNotFirst. Alla fine, abbiamo stampato gli elementi di entrambi gli liste firstNotSecond e secondNotFirst. Qui, l’output viene ripetuto tante volte quanto il valore di ripetizione. Questo metodo dovrebbe essere preferito rispetto al metodo precedente se vogliamo considerare la ripetizione di valori.

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

Articolo correlato - Csharp List