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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。