Comparing and Finding Differences between Strings in C#

If I Have 2 Strings in C#: How to Compare Them and Show the Differences?

Comparing strings in C# is a common task, and sometimes you may need to find the differences between two strings. Whether you want to highlight the variations or simply extract the dissimilar parts, this blog post will guide you through the process.

Comparing Strings in C#

Before diving into finding the differences, let’s understand how to compare strings in C#. In C#, you can use the String.Compare() method to compare two strings.

string string1 = "Hello";
string string2 = "World";
int result = String.Compare(string1, string2);
if (result == 0)
  Console.WriteLine("The strings are equal."\);
else if (result < 0)
  Console.WriteLine("String 1 is less than String 2."\);
  Console.WriteLine("String 1 is greater than String 2."\);

In this example, the String.Compare() method returns an integer that indicates the relationship between the two strings. If the result is 0, the strings are equal. If the result is less than 0, string1 is less than string2, and if the result is greater than 0, string1 is greater than string2.

Finding Differences between Strings

To find the differences between two strings and only display the varying parts, you can utilize the SequenceDiff class from the System.Linq namespace. This class provides a convenient way to compare sequences, including strings.

using System;
using System.Linq;

string string1 = "Hello";
string string2 = "Hola";

var differences = string1.Zip(string2, (c1, c2) => c1 == c2 ? ' ' : c1);
string differingChars = new string(differences.ToArray());

In this code snippet, the Zip() method is used to iterate over the characters of both strings in parallel. The lambda expression checks if the characters at the same position are equal. If they are, a space character is added to the result; otherwise, the differing character is included.

Outputting the Differences

The resulting string, differingChars, will only contain the differing characters between the two strings. You can then display, process, or manipulate this string as desired.

Console.WriteLine("The differences between the strings are: "\ + differingChars);

When you run this code, it will output the characters that are different between the two strings. In this example, the output will be:

The differences between the strings are: Hola


Comparing and finding differences between two strings in C# is a straightforward process. By using the String.Compare() method, you can compare strings to determine their equality or order. To extract the differences between strings, you can utilize the SequenceDiff class and the Zip() method to find the varying characters and output them.

By employing these techniques, you can easily handle string comparisons and display the differences in your C# applications.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.