Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

SortKey.Compare Method

Compares two sort keys.

Namespace:  System.Globalization
Assembly:  mscorlib (in mscorlib.dll)
public static int Compare(
	SortKey sortkey1,
	SortKey sortkey2
)

Parameters

sortkey1
Type: System.Globalization.SortKey

The first sort key to compare.

sortkey2
Type: System.Globalization.SortKey

The second sort key to compare.

Return Value

Type: System.Int32
A signed integer that indicates the relationship between sortkey1 and sortkey2.

Value

Condition

Less than zero

sortkey1 is less than sortkey2.

Zero

sortkey1 is equal to sortkey2.

Greater than zero

sortkey1 is greater than sortkey2.

ExceptionCondition
ArgumentNullException

sortkey1 or sortkey2 is null.

The Compare method compares the KeyData properties of the sortkey1 and sortkey2 parameters. The method yields the same results as the CompareInfo.Compare method.

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".

*/

.NET Framework

Supported in: 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.