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 equalString.Compare(str1, str3)
returns -1 since str1 comes before str3String.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
valuefalse
considers the letter case during string comparison.- We can have additional parameters in the
String.Compare()
method, likebool ignorecase
.