C# String Compare and CompareTo Methods

Use the Compare and CompareOrdinal methods on strings. See the results of CompareTo.
Compare. 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
An example. 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 using System; class Program { static void Main() { string a = "a"; string b = "b"; int c = string.Compare(a, b); Console.WriteLine(c); c = string.CompareOrdinal(b, a); Console.WriteLine(c); c = a.CompareTo(b); Console.WriteLine(c); c = b.CompareTo(a); Console.WriteLine(c); } } Output -1 (This means a is smaller than b) 1 (This means b is smaller than a) -1 1
Notes, globalization. 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.

A discussion. 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
Case. 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-2019 Sam Allen. Every person is special and unique. Send bug reports to info@dotnetperls.com.
HomeSearch
Home
Dot Net Perls