SortKey.Compare(SortKey, SortKey) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
比较两个排序关键字。
public:
static int Compare(System::Globalization::SortKey ^ sortkey1, System::Globalization::SortKey ^ sortkey2);
public static int Compare (System.Globalization.SortKey sortkey1, System.Globalization.SortKey sortkey2);
static member Compare : System.Globalization.SortKey * System.Globalization.SortKey -> int
Public Shared Function Compare (sortkey1 As SortKey, sortkey2 As SortKey) As Integer
参数
- sortkey1
- SortKey
将比较的第一个排序关键字。
- sortkey2
- SortKey
将比较的第二个排序关键字。
返回
一个带符号整数,指示 sortkey1
和 sortkey2
之间的关系。
“值” | 条件 |
---|---|
小于零 | sortkey1 小于 sortkey2 。
|
零 | sortkey1 等于 sortkey2 。
|
大于零 | sortkey1 大于 sortkey2 。
|
例外
sortkey1
或 sortkey2
为 null
。
示例
下面的代码示例使用 Compare 方法和等效 CompareInfo.Compare(String, String, CompareOptions) 方法比较两个字符串。
// This code example demonstrates the CompareInfo.Compare() and
// SortKey.Compare() methods.
using System;
using System.Globalization;
class Sample
{
public static void Main()
{
string lowerABC = "abc";
string upperABC = "ABC";
int result = 0;
// Create a CompareInfo object for the en-US culture.
Console.WriteLine("\nCreate a CompareInfo object for the en-US culture...\n");
CompareInfo cmpi = CompareInfo.GetCompareInfo("en-US");
// Alternatively:
// CompareInfo cmpi = new CultureInfo("en-US").CompareInfo;
// Create sort keys for lowercase and uppercase "abc", the en-US culture, and
// ignore case.
SortKey sk1LowerIgnCase = cmpi.GetSortKey(lowerABC, CompareOptions.IgnoreCase);
SortKey sk2UpperIgnCase = cmpi.GetSortKey(upperABC, CompareOptions.IgnoreCase);
// Create sort keys for lowercase and uppercase "abc", the en-US culture, and
// use case.
SortKey sk1LowerUseCase = cmpi.GetSortKey(lowerABC, CompareOptions.None);
SortKey sk2UpperUseCase = cmpi.GetSortKey(upperABC, CompareOptions.None);
// Compare lowercase and uppercase "abc", ignoring case and using CompareInfo.
result = cmpi.Compare(lowerABC, upperABC, CompareOptions.IgnoreCase);
Display(result, "CompareInfo, Ignore case", lowerABC, upperABC);
// Compare lowercase and uppercase "abc", ignoring case and using SortKey.
result = SortKey.Compare(sk1LowerIgnCase, sk2UpperIgnCase);
Display(result, "SortKey, Ignore case", lowerABC, upperABC);
Console.WriteLine();
// Compare lowercase and uppercase "abc", using case and using CompareInfo.
result = cmpi.Compare(lowerABC, upperABC, CompareOptions.None);
Display(result, "CompareInfo, Use case", lowerABC, upperABC);
// Compare lowercase and uppercase "abc", using case and using SortKey.
result = SortKey.Compare(sk1LowerUseCase, sk2UpperUseCase);
Display(result, "SortKey, Use case", lowerABC, upperABC);
}
// Display the results of a comparison.
private static void Display(int compareResult, string title,
string lower, string upper)
{
string lessThan = "less than ";
string equalTo = "equal to ";
string greaterThan = "greater than ";
string resultPhrase = null;
string format = "{0}:\n \"{1}\" is {2}\"{3}\".";
if (compareResult < 0) resultPhrase = lessThan;
else if (compareResult > 0) resultPhrase = greaterThan;
else resultPhrase = equalTo;
Console.WriteLine(format, title, lower, resultPhrase, upper);
}
}
/*
This code example produces the following results:
Create a CompareInfo object for the en-US culture...
CompareInfo, Ignore case:
"abc" is equal to "ABC".
SortKey, Ignore case:
"abc" is equal to "ABC".
CompareInfo, Use case:
"abc" is less than "ABC".
SortKey, Use case:
"abc" is less than "ABC".
*/
' This code example demonstrates the CompareInfo.Compare() and
' SortKey.Compare() methods.
Imports System.Globalization
Class Sample
Public Shared Sub Main()
Dim lowerABC As String = "abc"
Dim upperABC As String = "ABC"
Dim result As Integer = 0
' Create a CompareInfo object for the en-US culture.
Console.WriteLine(vbCrLf & _
"Create a CompareInfo object for the en-US culture..." & _
vbCrLf)
Dim cmpi As CompareInfo = CompareInfo.GetCompareInfo("en-US")
' Alternatively:
' Dim cmpi As CompareInfo = New CultureInfo("en-US").CompareInfo
' Create sort keys for lowercase and uppercase "abc", the en-US culture, and
' ignore case.
Dim sk1LowerIgnCase As SortKey = cmpi.GetSortKey(lowerABC, CompareOptions.IgnoreCase)
Dim sk2UpperIgnCase As SortKey = cmpi.GetSortKey(upperABC, CompareOptions.IgnoreCase)
' Create sort keys for lowercase and uppercase "abc", the en-US culture, and
' use case.
Dim sk1LowerUseCase As SortKey = cmpi.GetSortKey(lowerABC, CompareOptions.None)
Dim sk2UpperUseCase As SortKey = cmpi.GetSortKey(upperABC, CompareOptions.None)
' Compare lowercase and uppercase "abc", ignoring case and using CompareInfo.
result = cmpi.Compare(lowerABC, upperABC, CompareOptions.IgnoreCase)
Display(result, "CompareInfo, Ignore case", lowerABC, upperABC)
' Compare lowercase and uppercase "abc", ignoring case and using SortKey.
result = SortKey.Compare(sk1LowerIgnCase, sk2UpperIgnCase)
Display(result, "SortKey, Ignore case", lowerABC, upperABC)
Console.WriteLine()
' Compare lowercase and uppercase "abc", using case and using CompareInfo.
result = cmpi.Compare(lowerABC, upperABC, CompareOptions.None)
Display(result, "CompareInfo, Use case", lowerABC, upperABC)
' Compare lowercase and uppercase "abc", using case and using SortKey.
result = SortKey.Compare(sk1LowerUseCase, sk2UpperUseCase)
Display(result, "SortKey, Use case", lowerABC, upperABC)
End Sub
' Display the results of a comparison.
Private Shared Sub Display(ByVal compareResult As Integer, _
ByVal title As String, _
ByVal lower As String, _
ByVal upper As String)
Dim lessThan As String = "less than "
Dim equalTo As String = "equal to "
Dim greaterThan As String = "greater than "
Dim resultPhrase As String = Nothing
Dim format As String = "{0}:" & vbCrLf & " ""{1}"" is {2}""{3}""."
If compareResult < 0 Then
resultPhrase = lessThan
ElseIf compareResult > 0 Then
resultPhrase = greaterThan
Else
resultPhrase = equalTo
End If
Console.WriteLine(format, title, lower, resultPhrase, upper)
End Sub
End Class
'
'This code example produces the following results:
'
'Create a CompareInfo object for the en-US culture...
'
'CompareInfo, Ignore case:
' "abc" is equal to "ABC".
'SortKey, Ignore case:
' "abc" is equal to "ABC".
'
'CompareInfo, Use case:
' "abc" is less than "ABC".
'SortKey, Use case:
' "abc" is less than "ABC".
'
注解
方法Compare比较 KeyData 和 sortkey2
参数的属性sortkey1
。 方法生成与 方法相同的结果 CompareInfo.Compare 。
有关 方法和排序键比较的详细信息 Compare ,请参阅 SortKey 类主题。