C# String Compare()

The Compare() method compares two strings in the alphabetical order.

Example

using System;  
namespace CsharpString {  
  class Test {
    public static void Main(string [] args) {

      string str1 = "C#";
      string str2 = "Programiz";

// compares str1 with str2 // returns -1 because C# comes before Programiz in alphabetical order int result = String.Compare(str1, str2);
Console.WriteLine(result); Console.ReadLine(); } } } // Output: -1

Compare() Syntax

The syntax of the string Compare() method is:

String.Compare(string str1, string str2)

Here, Compare() is a method of class String.


Compare() Parameters

The Compare() method takes the following parameters:

  • str1 - first string for comparison
  • str2 - second string for comparison

Compare() Return Value

The Compare() method returns:

  • 0 - if the strings are equal
  • positive integer - if the first string comes after the second string in the alphabetical order
  • negative integer - if the first string comes before the second string in the alphabetical order

Example 1: C# String Compare()

using System;  
namespace CsharpString {  
  class Test {
    public static void Main(string [] args) {

      string str1 = "C#";
      string str2 = "C#";
      string str3 = "Programiz";

      int result;
       
// compares str1 with str2 result = String.Compare(str1, str2);
Console.WriteLine(result);
//compares str1 with str3 result = String.Compare(str1, str3);
Console.WriteLine(result);
//compares str3 with str1 result = String.Compare(str3, str1);
Console.WriteLine(result); Console.ReadLine(); } } }

Output

0
-1
1

Here,

  • String.Compare(str1, str2) returns 0 since str1 and str2 are equal
  • String.Compare(str1, str3) returns -1 since str1 comes before str3
  • String.Compare(str3, str1) returns 1 since str3 comes after str1

Example 2: Check if Two Strings Are Equal

using System;  
namespace CsharpString {  
  class Test {
    public static void Main(string [] args) {

      string str1 = "C#";
      string str2 = "C#";
      
// if str1 and str2 are equal, the result is 0 if(String.Compare(str1, str2) == 0)
{ Console.WriteLine("str1 and str2 are equal"); } else { Console.WriteLine("str1 and str2 are not equal."); } Console.ReadLine(); } } }

Output

str1 and str2 are equal

Since, str1 is equal to str2, String.Compare(str1, str2) returns 0.


Example 3: C# String Compare() With Case

using System;  
namespace CsharpString {  
  class Test {
    public static void Main(string [] args) {

      string str1 = "Programiz";
      string str2 = "programiz";

      int result;
      
// compares str1 and str2 result = String.Compare(str1, str2);
Console.WriteLine(result); Console.ReadLine(); } } }

Output

1

When "Programiz" is compared to "programiz", we do not get 0. It is because the Compare() method considers the letter case.


Example 4: C# String Compare() - Ignore Case

using System;  
namespace CsharpString {  
  class Test {
    public static void Main(string [] args) {

      string str1 = "Programiz";
      string str2 = "programiz";

      int result;
      bool ignoreCase = true;

// compares by ignoring case result = String.Compare(str1, str2, ignoreCase);
Console.WriteLine(result); Console.ReadLine(); } } }

Output

0

When "Programiz" is compared to "programiz", we get 0. This is because we have the Boolean value true in the method parameter, which ignores the case during string comparison.

Notes:

  • Boolean value false considers the letter case during string comparison.
  • We can have additional parameters in the String.Compare() method, like bool ignorecase.
Did you find this article helpful?

Your builder path starts here. Builders don't just know how to code, they create solutions that matter.

Escape tutorial hell and ship real projects.

Try Programiz PRO
  • Real-World Projects
  • On-Demand Learning
  • AI Mentor
  • Builder Community