SortKey.Compare(SortKey, SortKey) 方法

定义

比较两个排序关键字。Compares two sort keys.

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

将比较的第一个排序关键字。The first sort key to compare.

sortkey2
SortKey

将比较的第二个排序关键字。The second sort key to compare.

返回

Int32

一个带符号整数,指示 sortkey1sortkey2 之间的关系。A signed integer that indicates the relationship between sortkey1 and sortkey2.

“值”Value 条件Condition
小于零Less than zero sortkey1 小于 sortkey2sortkey1 is less than sortkey2.
Zero sortkey1 等于 sortkey2sortkey1 is equal to sortkey2.
大于零Greater than zero sortkey1 大于 sortkey2sortkey1 is greater than sortkey2.

例外

sortkey1sortkey2nullsortkey1 or sortkey2 is null.

示例

下面的代码示例使用 Compare 方法和等效方法来比较两个字符串 CompareInfo.Compare(String, String, CompareOptions)The following code example compares two strings using the Compare method and the equivalent CompareInfo.Compare(String, String, CompareOptions) method.

// 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 sortkey1 和参数的属性 sortkey2The Compare method compares the KeyData properties of the sortkey1 and sortkey2 parameters. 方法生成的结果与 CompareInfo.Compare 方法相同。The method yields the same results as the CompareInfo.Compare method.

有关 Compare 方法和排序关键字比较的详细信息,请参阅 SortKey 类主题。For more information about the Compare method and the comparison of sort keys, see the SortKey class topic.

适用于