當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


C# StringComparer.Compare用法及代碼示例

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

參考:



相關用法


注:本文由純淨天空篩選整理自SoumikMondal大神的英文原創作品 C# | StringComparer.Compare Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。