C# String Compare and CompareTo MethodsUse the Compare and CompareOrdinal methods on strings. See the results of CompareTo.
This method determines the sort order of strings. It checks if one string is ordered before another when in alphabetical order, whether it is ordered after, or is equivalent.Strings
There are 3 methods
that provide this functionality—Compare, CompareOrdinal and CompareTo. Two strings are always compared. Here are the int return values.Int, uint
String Compare method results:
String A: First alphabetically
String B: Second alphabetically
Compare(A, B): -1
Compare(B, A): 1
Compare(A, A): 0
Compare(B, B): 0
Normally we need the Compare methods for sorting algorithms. We use them to test whether one string comes before or after the other in a plain ASCII sort.Sort
Here: The program shows 3 comparison methods. The Compare and CompareOrdinal methods are static, while CompareTo is an instance method.CompareTo
Note: If the first string is bigger, the result is 1. If the first string is smaller, the result is -1.
And: If both strings are equal, the result is 0. The number essentially indicates how much "larger" the first string is.
C# program that uses Compare
static void Main()
string a = "a";
string b = "b";
int c = string.Compare(a, b);
c = string.CompareOrdinal(b, a);
c = a.CompareTo(b);
c = b.CompareTo(a);
-1 (This means a is smaller than b)
1 (This means b is smaller than a)
By default, string.Compare and CompareTo use the system globalization for safe comparisons. Cultures such as Turkish have common letters that need globalization.
Tip: You can specify those cultures in the method call as a parameter to accomplish this goal.
All sorting algorithms must see if one string should be ordered before any other string. The Compare methods are ideal for when you need to implement your own sorting methods.
Note: Compare methods are not needed to check string equality. You can use the Equals method, or the == operator, for equality.String Equals
String comparisons are by default case-sensitive. But you can use the StringComparison.OrdinalIgnoreCase enumerated constant to use a case-insensitive comparison.StringComparison, StringComparer
Tip: This option is useful in many programs, such as those that deal with the Windows file system where file case is not important.
A summary. The Compare methods see if one string is larger, smaller or equal to another. Compare returns 1, 0 or -1 if a string is alphabetically first, equal, or second.
© 2007-2020 Sam Allen. Every person is special and unique. Send bug reports to email@example.com.