The Compare 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.
There are 3 methods that provide this functionality—Compare, CompareOrdinal
and CompareTo
. Two strings are always compared.
We need the Compare methods for sorting algorithms. We use them to test whether one string
comes before or after the other in sorting.
string.Compare
static
method. It is not called on an instance, and we must pass 2 arguments.static
CompareOrdinal
—this treats strings by their numeric (ordinal) character values.CompareTo
instance method. We cannot use this method on a null
variable.string
is bigger, the result is 1. If the first string
is smaller, the result is -1.string
is.using System; string a = "a"; string b = "b"; // Part 1: use static Compare. int c = string.Compare(a, b); Console.WriteLine(c); // Part 2: use static CompareOrdinal. c = string.CompareOrdinal(b, a); Console.WriteLine(c); // Part 3: use CompareTo. c = a.CompareTo(b); Console.WriteLine(c); c = b.CompareTo(a); Console.WriteLine(c);-1 (This means a is smaller than b) 1 (This means b is smaller than a) -1 1
It is important to understand the possible results of Compare methods. Here are the int
return values—we see just 3 values: -1, zero, and 1.
String A: First alphabetically String B: Second alphabetically Compare(A, B): -1 Compare(B, A): 1 Compare(A, A): 0 Compare(B, B): 0
By default, string.Compare
and CompareTo
use the system globalization for safe comparisons. Cultures such as Turkish have common letters that need globalization.
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.
string
equality. You can use the Equals
method, or the == operator, for equality.String
comparisons are by default case-sensitive. But you can use the StringComparison.OrdinalIgnoreCase enumerated constant to use a case-insensitive comparison.
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.