Comparer Constructor
Initializes a new instance of the Comparer class using the specified System.Globalization.CultureInfo.
[Visual Basic] Public Sub New( _ ByVal culture As CultureInfo _ ) [C#] public Comparer( CultureInfo culture ); [C++] public: Comparer( CultureInfo* culture ); [JScript] public function Comparer( culture : CultureInfo );
Parameters
- culture
- The System.Globalization.CultureInfo to use for the new Comparer.
Exceptions
| Exception Type | Condition |
|---|---|
| ArgumentNullException | culture is a null reference (Nothing in Visual Basic). |
Remarks
Comparison procedures use the specified System.Globalization.CultureInfo 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
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 | System.Globalization.CultureInfo | System.Globalization.CompareInfo