This documentation is archived and is not being maintained.

Comparer.DefaultInvariant Field

Note: This namespace, class, or member is supported only in version 1.1 of the .NET Framework.

Represents an instance of Comparer that is associated with CultureInfo.InvariantCulture. This field is read-only.

[Visual Basic]
Public Shared ReadOnly DefaultInvariant As Comparer
[C#]
public static readonly Comparer DefaultInvariant;
[C++]
public: static Comparer* DefaultInvariant;
[JScript]
public static var DefaultInvariant : Comparer;

Remarks

Comparison procedures use the CultureInfo.InvariantCulture to determine the sort order and casing rules. String comparisons might have different results depending on the culture. For more information on culture-specific comparisons, see the System.Globalization namespace and Developing World-Ready Applications.

Example

[Visual Basic, C#, C++] The following code example shows how Compare returns different values depending on the culture associated with the Comparer.

[Visual Basic] 
Imports System
Imports System.Collections
Imports System.Globalization

Public Class SamplesComparer

   Public Shared Sub Main()

      ' Creates the strings to compare.
      Dim str1 As [String] = "llegar"
      Dim str2 As [String] = "lugar"
      Console.WriteLine("Comparing ""{0}"" and ""{1}"" ...", str1, str2)

      ' Uses the DefaultInvariant Comparer.
      Console.WriteLine("   Invariant Comparer: {0}", Comparer.DefaultInvariant.Compare(str1, str2))

      ' Uses the Comparer based on the culture "es-ES" (Spanish - Spain, international sort).
      Dim myCompIntl As New Comparer(New CultureInfo("es-ES", False))
      Console.WriteLine("   International Sort: {0}", myCompIntl.Compare(str1, str2))

      ' Uses the Comparer based on the culture identifier 0x040A (Spanish - Spain, traditional sort).
      Dim myCompTrad As New Comparer(New CultureInfo(&H40A, False))
      Console.WriteLine("   Traditional Sort  : {0}", myCompTrad.Compare(str1, str2))

   End Sub 'Main 

End Class 'SamplesComparer


'This code produces the following output.
'
'Comparing "llegar" and "lugar" ...
'   Invariant Comparer: -1
'   International Sort: -1
'   Traditional Sort  : 1


[C#] 
using System;
using System.Collections;
using System.Globalization;


public class SamplesComparer  {

   public static void Main()  {

      // Creates the strings to compare.
      String str1 = "llegar";
      String str2 = "lugar";
      Console.WriteLine( "Comparing \"{0}\" and \"{1}\" ...", str1, str2 );

      // Uses the DefaultInvariant Comparer.
      Console.WriteLine( "   Invariant Comparer: {0}", Comparer.DefaultInvariant.Compare( str1, str2 ) );

      // Uses the Comparer based on the culture "es-ES" (Spanish - Spain, international sort).
      Comparer myCompIntl = new Comparer( new CultureInfo( "es-ES", false ) );
      Console.WriteLine( "   International Sort: {0}", myCompIntl.Compare( str1, str2 ) );

      // Uses the Comparer based on the culture identifier 0x040A (Spanish - Spain, traditional sort).
      Comparer myCompTrad = new Comparer( new CultureInfo( 0x040A, false ) );
      Console.WriteLine( "   Traditional Sort  : {0}", myCompTrad.Compare( str1, str2 ) );

   }

}

/*
This code produces the following output.

Comparing "llegar" and "lugar" ...
   Invariant Comparer: -1
   International Sort: -1
   Traditional Sort  : 1

*/

[C++] 
#using <mscorlib.dll>

using namespace System;
using namespace System::Collections;
using namespace System::Globalization;

int main()  {

    // Creates the strings to compare.
    String* str1 = S"llegar";
    String* str2 = S"lugar";
    Console::WriteLine(S"Comparing \"{0}\" and \"{1}\" ...", str1, str2);

    // Uses the DefaultInvariant Comparer.
    Console::WriteLine(S"   Invariant Comparer: {0}", __box(Comparer::DefaultInvariant->Compare(str1, str2)));

    // Uses the Comparer based on the culture "es-ES" (Spanish - Spain, international sort).
    Comparer* myCompIntl = new Comparer(new CultureInfo("es-ES", false));
    Console::WriteLine(S"   International Sort: {0}", __box(myCompIntl->Compare(str1, str2)));

    // Uses the Comparer based on the culture identifier 0x040A (Spanish - Spain, traditional sort).
    Comparer* myCompTrad = new Comparer(new CultureInfo(0x040A, false));
    Console::WriteLine(S"   Traditional Sort  : {0}", __box(myCompTrad->Compare(str1, str2)));
}

/*
This code produces the following output.

Comparing "llegar" and "lugar" ...
   Invariant Comparer: -1
   International Sort: -1
   Traditional Sort  : 1

*/

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework

See Also

Comparer Class | Comparer Members | System.Collections Namespace | CultureInfo.InvariantCulture | System.Globalization.CompareInfo

Show: