使用英语阅读

通过


SortKey.Compare(SortKey, SortKey) 方法

定义

比较两个排序关键字。

public static int Compare (System.Globalization.SortKey sortkey1, System.Globalization.SortKey sortkey2);

参数

sortkey1
SortKey

将比较的第一个排序关键字。

sortkey2
SortKey

将比较的第二个排序关键字。

返回

一个带符号整数,指示 sortkey1sortkey2 之间的关系。

“值” 条件
小于零 sortkey1 小于 sortkey2
sortkey1 等于 sortkey2
大于零 sortkey1 大于 sortkey2

例外

sortkey1sortkey2null

示例

下面的代码示例使用 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".

*/

注解

方法Compare比较 KeyDatasortkey2 参数的属性sortkey1。 方法生成与 方法相同的结果 CompareInfo.Compare

有关 方法和排序键比较的详细信息 Compare ,请参阅 SortKey 类主题。

适用于

产品 版本
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1