StringComparer.Compare方法用於比較兩個對象或字符串,並返回其相對排序順序的指示。此方法的重載列表中有2種方法:
- 比較(對象,對象)
 - 比較(字符串,字符串)
 
Compare(Object, Object)
此方法比較兩個對象,並在派生類中重寫時返回其相對排序順序的指示。
用法:
public int Compare (object a, object b);
在此,a是要比較的第一對象,b是要比較的第二對象。
返回值:此方法返回一個帶符號的整數,該整數指示對象a和b的相對值。根據下表返回值:
| 值 | 含義 | 
|---|---|
| 小於零 | a按排序順序在b之前,或者a為null且b不為null。 | 
| 零 | a等於b或a和b都為空。 | 
| 大於零 | a按照排序順序跟隨b或b為null且a不為null。 | 
異常:如果a和b都不是String對象,並且a和b都不實現IComparable接口,則此方法將提供ArgumentException。
例:
// C# program to demonstrate the use of 
// StringComparer.Compare(Object, Object) 
// Method 
using System; 
using System.Collections; 
  
class gfg { 
  
    public class cmp:IComparer { 
  
        // CaseInsensitiveComparer 
        int IComparer.Compare(Object x, Object y) 
        { 
            return ((new CaseInsensitiveComparer()).Compare(x, y)); 
        } 
    } 
  
    // Main Method 
    public static void Main() 
    { 
        // Initialize a string array. 
        string[] arr = {"A", "E", "D", "C", "B"}; 
  
        // Display original array 
        Console.WriteLine("Original array:"); 
        print(arr); 
  
        // Sort the array using the default comparer. 
        Array.Sort(arr); 
        Console.WriteLine("Sort using sort function:"); 
        print(arr); 
  
        // Sort the array using the comparer. 
        Array.Sort(arr, new cmp()); 
        Console.WriteLine("Sorting using compare method:"); 
        print(arr); 
    } 
  
    // print function 
    public static void print(IEnumerable list) 
    { 
        foreach(var v in list) 
            Console.WriteLine(v); 
  
        Console.WriteLine(); 
    } 
}
輸出:
Original array: A E D C B Sort using sort function: A B C D E Sorting using compare method: A B C D E
Compare(String, String)
此方法比較兩個字符串,並在派生類中重寫時返回其相對排序順序的指示。
用法:
public abstract int Compare (string a, string b);
這裏,a是要比較的第一字符串,b是要比較的第二字符串。
返回值:此方法返回一個帶符號的整數,該整數指示對象a和b的相對值。根據下表返回值:
| 值 | 含義 | 
|---|---|
| 小於零 | a按排序順序在b之前,或者a為null且b不為null。 | 
| 零 | a等於b或a和b都為空。 | 
| 大於零 | a按照排序順序跟隨b或b為null且a不為null。 | 
異常:如果a和b都不是String對象,並且a和b都不實現IComparable接口,則此方法將提供ArgumentException。
例:
// C# program to demonstrate the use of  
// StringComparer.Compare(String, String) 
// Method 
using System; 
using System.Collections.Generic; 
  
class GFG { 
  
    // Main Method 
    static void Main(string[] args) 
    { 
        string s1 = "geek"; 
        string s2 = "Geek"; 
  
        int st = 0; 
  
        // Compare(string, string) method 
        st = string.Compare(s1, s2); 
  
        Console.WriteLine(st.ToString()); 
    } 
}
輸出:
-1
參考:
相關用法
- C# Uri.MakeRelativeUri(Uri)用法及代碼示例
 - C# CharEnumerator.MoveNext()用法及代碼示例
 - C# Math.IEEERemainder()用法及代碼示例
 - C# CharEnumerator.GetType()用法及代碼示例
 - C# MathF.Sin()用法及代碼示例
 - C# Double.CompareTo用法及代碼示例
 - C# Graphics.DrawLine()方法用法及代碼示例
 - C# UInt16.GetHashCode用法及代碼示例
 - C# Stack.Peek用法及代碼示例
 - C# Math.Sign()用法及代碼示例
 - C# Int64.CompareTo用法及代碼示例
 
注:本文由純淨天空篩選整理自SoumikMondal大神的英文原創作品 C# | StringComparer.Compare Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
