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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。