Max Max - 4 months ago 14
C# Question

Compare the difference between two list<string>

I'am trying to check the difference between two

List<string>
in
c#
.

Example:

List<string> FirstList = new List<string>();
List<string> SecondList = new List<string>();


The
FirstList
is filled with the following values:

FirstList.Add("COM1");
FirstList.Add("COM2");


The
SecondList
is filled with the following values:

SecondList.Add("COM1");
SecondList.Add("COM2");
SecondList.Add("COM3");


Now I want to check if some values in the
SecondList
are equal to values in the
FirstList
.

If there are equal values like: COM1 and COM2, that are in both lists, then filter them from the list, and add the remaining values to another list.

So if I would create a new
ThirdList
, it will be filled with "COM3" only, because the other values are duplicates.

How can I create such a check?

Answer

Try to use Except LINQ extension method, which takes items only from the first list, that are not present in the second. Example is given below:

List<string> ThirdList =  SecondList.Except(FirstList).ToList();

You can print the result using the following code:

Console.WriteLine(string.Join(Environment.NewLine, ThirdList));

Or

Debug.WriteLine(string.Join(Environment.NewLine, ThirdList));

Note: Don't forget to include: using System.Diagnostics;

prints:

COM3