CompareInfo.Compare Methode

Definitie

Vergelijkt twee tekenreeksen.

Overloads

Name Description
Compare(String, String)

Vergelijkt twee tekenreeksen.

Compare(String, String, CompareOptions)

Vergelijkt twee tekenreeksen met behulp van de opgegeven CompareOptions waarde.

Compare(String, Int32, String, Int32)

Vergelijkt de eindsectie van een tekenreeks met de eindsectie van een andere tekenreeks.

Compare(String, Int32, String, Int32, CompareOptions)

Vergelijkt de eindsectie van een tekenreeks met de eindsectie van een andere tekenreeks met behulp van de opgegeven CompareOptions waarde.

Compare(String, Int32, Int32, String, Int32, Int32)

Vergelijkt een sectie van de ene tekenreeks met een sectie van een andere tekenreeks.

Compare(String, Int32, Int32, String, Int32, Int32, CompareOptions)

Vergelijkt een sectie van de ene tekenreeks met een sectie van een andere tekenreeks met behulp van de opgegeven CompareOptions waarde.

Compare(String, String)

Vergelijkt twee tekenreeksen.

public:
 virtual int Compare(System::String ^ string1, System::String ^ string2);
public virtual int Compare(string string1, string string2);
abstract member Compare : string * string -> int
override this.Compare : string * string -> int
Public Overridable Function Compare (string1 As String, string2 As String) As Integer

Parameters

string1
String

De eerste tekenreeks die moet worden vergeleken.

string2
String

De tweede tekenreeks die moet worden vergeleken.

Retouren

Een 32-bits geheel getal dat de lexicale relatie tussen de twee comparands aangeeft.

Waarde Conditie
Nul De twee tekenreeksen zijn gelijk.
kleiner dan nul string1 is kleiner dan string2.
groter dan nul string1 is groter dan string2.

Voorbeelden

In het volgende voorbeeld worden delen van twee tekenreeksen vergeleken met behulp van de verschillende CompareInfo objecten:

// The following code example compares two strings using the different CompareInfo instances:
//    a CompareInfo instance associated with the "Spanish - Spain" culture with international sort,
//    a CompareInfo instance associated with the "Spanish - Spain" culture with traditional sort, and
//    a CompareInfo instance associated with the InvariantCulture.

using System;
using System.Globalization;

public class SamplesCompareInfo  {

   public static void Main()  {

      // Defines the strings to compare.
      String myStr1 = "calle";
      String myStr2 = "calor";

      // Uses GetCompareInfo to create the CompareInfo that uses the "es-ES" culture with international sort.
      CompareInfo myCompIntl = CompareInfo.GetCompareInfo( "es-ES" );

      // Uses GetCompareInfo to create the CompareInfo that uses the "es-ES" culture with traditional sort.
      CompareInfo myCompTrad = CompareInfo.GetCompareInfo( 0x040A );

      // Uses the CompareInfo property of the InvariantCulture.
      CompareInfo myCompInva = CultureInfo.InvariantCulture.CompareInfo;

      // Compares two strings using myCompIntl.
      Console.WriteLine( "Comparing \"{0}\" and \"{1}\"", myStr1, myStr2 );
      Console.WriteLine( "   With myCompIntl.Compare: {0}", myCompIntl.Compare( myStr1, myStr2 ) );
      Console.WriteLine( "   With myCompTrad.Compare: {0}", myCompTrad.Compare( myStr1, myStr2 ) );
      Console.WriteLine( "   With myCompInva.Compare: {0}", myCompInva.Compare( myStr1, myStr2 ) );
   }
}


/*
This code produces the following output.

Comparing "calle" and "calor"
   With myCompIntl.Compare: -1
   With myCompTrad.Compare: 1
   With myCompInva.Compare: -1

*/
' The following code example compares two strings using the different CompareInfo instances:
'    a CompareInfo instance associated with the "Spanish - Spain" culture with international sort,
'    a CompareInfo instance associated with the "Spanish - Spain" culture with traditional sort, and
'    a CompareInfo instance associated with the InvariantCulture.

Imports System.Globalization

Public Class SamplesCompareInfo

   Public Shared Sub Main()

      ' Defines the strings to compare.
      Dim myStr1 As [String] = "calle"
      Dim myStr2 As [String] = "calor"

      ' Uses GetCompareInfo to create the CompareInfo that uses the "es-ES" culture with international sort.
      Dim myCompIntl As CompareInfo = CompareInfo.GetCompareInfo("es-ES")

      ' Uses GetCompareInfo to create the CompareInfo that uses the "es-ES" culture with traditional sort.
      Dim myCompTrad As CompareInfo = CompareInfo.GetCompareInfo(&H40A)

      ' Uses the CompareInfo property of the InvariantCulture.
      Dim myCompInva As CompareInfo = CultureInfo.InvariantCulture.CompareInfo

      ' Compares two strings using myCompIntl.
      Console.WriteLine("Comparing ""{0}"" and ""{1}""", myStr1, myStr2)
      Console.WriteLine("   With myCompIntl.Compare: {0}", myCompIntl.Compare(myStr1, myStr2))
      Console.WriteLine("   With myCompTrad.Compare: {0}", myCompTrad.Compare(myStr1, myStr2))
      Console.WriteLine("   With myCompInva.Compare: {0}", myCompInva.Compare(myStr1, myStr2))

   End Sub

End Class


'This code produces the following output.
'
'Comparing "calle" and "calor"
'   With myCompIntl.Compare: -1
'   With myCompTrad.Compare: 1
'   With myCompInva.Compare: -1

In het volgende voorbeeld ziet u hoe u de Compare methode aanroept.

using System;
using System.Text;
using System.Globalization;

public sealed class App
{
    static void Main(string[] args)
    {
        String[] sign = new String[] { "<", "=", ">" };

        // The code below demonstrates how strings compare
        // differently for different cultures.
        String s1 = "Coté", s2 = "coté", s3 = "côte";

        // Set sort order of strings for French in France.
        CompareInfo ci = new CultureInfo("fr-FR").CompareInfo;
        Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID);

        // Display the result using fr-FR Compare of Coté = coté.  	
        Console.WriteLine("fr-FR Compare: {0} {2} {1}",
            s1, s2, sign[ci.Compare(s1, s2, CompareOptions.IgnoreCase) + 1]);

        // Display the result using fr-FR Compare of coté > côte.
        Console.WriteLine("fr-FR Compare: {0} {2} {1}",
            s2, s3, sign[ci.Compare(s2, s3, CompareOptions.None) + 1]);

        // Set sort order of strings for Japanese as spoken in Japan.
        ci = new CultureInfo("ja-JP").CompareInfo;
        Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID);

        // Display the result using ja-JP Compare of coté < côte.
        Console.WriteLine("ja-JP Compare: {0} {2} {1}",
            s2, s3, sign[ci.Compare(s2, s3) + 1]);
    }
}

// This code produces the following output.
//
// The LCID for fr-FR is 1036.
// fr-FR Compare: Coté = coté
// fr-FR Compare: coté > côte
// The LCID for ja-JP is 1041.
// ja-JP Compare: coté < côte
Imports System.Text
Imports System.Globalization

NotInheritable Public Class App
    Shared Sub Main(ByVal args() As String) 
        Dim sign() As String = {"<", "=", ">"}
        
        ' The code below demonstrates how strings compare 
        ' differently for different cultures.
        Dim s1 As String = "Coté"
        Dim s2 As String = "coté"
        Dim s3 As String = "côte"
        
        ' Set sort order of strings for French in France.
        Dim ci As CompareInfo = New CultureInfo("fr-FR").CompareInfo
        Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID)
        
        ' Display the result using fr-FR Compare of Coté = coté.  	
        Console.WriteLine("fr-FR Compare: {0} {2} {1}", _
                          s1, s2, sign((ci.Compare(s1, s2, CompareOptions.IgnoreCase) + 1)))
        
        ' Display the result using fr-FR Compare of coté > côte.
        Console.WriteLine("fr-FR Compare: {0} {2} {1}", _
                          s2, s3, sign((ci.Compare(s2, s3, CompareOptions.None) + 1)))
        
        ' Set sort order of strings for Japanese as spoken in Japan.
        ci = New CultureInfo("ja-JP").CompareInfo
        Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID)
        
        ' Display the result using ja-JP Compare of coté < côte. 
        Console.WriteLine("ja-JP Compare: {0} {2} {1}", _
                          s2, s3, sign((ci.Compare(s2, s3) + 1)))
    End Sub
End Class

' This code produces the following output.
' 
' The LCID for fr-FR is 1036.
' fr-FR Compare: Coté = coté
' fr-FR Compare: coté > côte
' The LCID for ja-JP is 1041.
' ja-JP Compare: coté < côte

Opmerkingen

De vergelijking wordt standaard uitgevoerd met behulp van CompareOptions.None. Als een beveiligingsbeslissing afhankelijk is van een tekenreeksvergelijking of een casewijziging, moet u de InvariantCulture eigenschap gebruiken om ervoor te zorgen dat het gedrag consistent is, ongeacht de cultuurinstellingen van het besturingssysteem.

Note

Indien mogelijk moet u vergelijkingsmethoden voor tekenreeksen aanroepen die een parameter van het type CompareOptions hebben om het type vergelijking op te geven dat wordt verwacht. Als algemene regel gebruikt u taalkundige opties (met behulp van de huidige cultuur) om tekenreeksen te vergelijken die worden weergegeven in de gebruikersinterface en specificeert u Ordinal of OrdinalIgnoreCase voor beveiligingsvergelijkingen.

Notities voor bellers

Tekensets bevatten negeerbare tekens. Dit zijn tekens die niet worden overwogen bij het uitvoeren van een taalkundige of cultuurgevoelige vergelijking. De Compare(String, String) methode beschouwt dergelijke tekens niet wanneer er een cultuurgevoelige vergelijking wordt uitgevoerd. Een cultuurgevoelige vergelijking van 'dier' met 'ani-mal' (met een zacht afbreekstreepje of U+00AD) geeft bijvoorbeeld aan dat de twee tekenreeksen gelijkwaardig zijn, zoals in het volgende voorbeeld wordt weergegeven.

Imports System.Globalization

Module Example
   Public Sub Main()
      Dim ci As CompareInfo = CultureInfo.CurrentCulture.CompareInfo
      Dim s1 As String = "ani" + ChrW(&h00AD) + "mal"
      Dim s2 As String = "animal"
      
      Console.WriteLine("Comparison of '{0}' and '{1}': {2}", 
                        s1, s2, ci.Compare(s1, s2))
  End Sub
End Module
' The example displays the following output:
'       Comparison of 'ani-mal' and 'animal': 0

Als u negeerbare tekens in een tekenreeksvergelijking wilt herkennen, roept u de Compare(String, String, CompareOptions) methode aan en geeft u een waarde op van een Ordinal van beide of OrdinalIgnoreCase voor de options parameter.

Van toepassing op

Compare(String, String, CompareOptions)

Vergelijkt twee tekenreeksen met behulp van de opgegeven CompareOptions waarde.

public:
 virtual int Compare(System::String ^ string1, System::String ^ string2, System::Globalization::CompareOptions options);
public virtual int Compare(string string1, string string2, System.Globalization.CompareOptions options);
abstract member Compare : string * string * System.Globalization.CompareOptions -> int
override this.Compare : string * string * System.Globalization.CompareOptions -> int
Public Overridable Function Compare (string1 As String, string2 As String, options As CompareOptions) As Integer

Parameters

string1
String

De eerste tekenreeks die moet worden vergeleken.

string2
String

De tweede tekenreeks die moet worden vergeleken.

options
CompareOptions

Een waarde die definieert hoe string1 en string2 moet worden vergeleken. optionsis de opsommingswaarde Ordinalof een bitsgewijze combinatie van een of meer van de volgende waarden: IgnoreCase, , IgnoreSymbols, IgnoreNonSpace, IgnoreWidth, , IgnoreKanaType, en NumericOrdering.StringSort

Retouren

Een 32-bits geheel getal dat de lexicale relatie tussen de twee comparands aangeeft.

Waarde Conditie
Nul De twee tekenreeksen zijn gelijk.
kleiner dan nul string1 is kleiner dan string2.
groter dan nul string1 is groter dan string2.

Uitzonderingen

options bevat een ongeldige CompareOptions waarde.

Voorbeelden

In het volgende voorbeeld worden twee tekenreeksen met verschillende CompareOptions instellingen vergeleken.

using System;
using System.Globalization;

public class SamplesCompareInfo  {

   public static void Main()  {

      // Defines the strings to compare.
      String myStr1 = "My Uncle Bill's clients";
      String myStr2 = "My uncle bills clients";

      // Creates a CompareInfo that uses the InvariantCulture.
      CompareInfo myComp = CultureInfo.InvariantCulture.CompareInfo;

      // Compares two strings using myComp.
      Console.WriteLine( "Comparing \"{0}\" and \"{1}\"", myStr1, myStr2 );
      Console.WriteLine( "   With no CompareOptions            : {0}", myComp.Compare( myStr1, myStr2 ) );
      Console.WriteLine( "   With None                         : {0}", myComp.Compare( myStr1, myStr2, CompareOptions.None ) );
      Console.WriteLine( "   With Ordinal                      : {0}", myComp.Compare( myStr1, myStr2, CompareOptions.Ordinal ) );
      Console.WriteLine( "   With StringSort                   : {0}", myComp.Compare( myStr1, myStr2, CompareOptions.StringSort ) );
      Console.WriteLine( "   With IgnoreCase                   : {0}", myComp.Compare( myStr1, myStr2, CompareOptions.IgnoreCase ) );
      Console.WriteLine( "   With IgnoreSymbols                : {0}", myComp.Compare( myStr1, myStr2, CompareOptions.IgnoreSymbols ) );
      Console.WriteLine( "   With IgnoreCase and IgnoreSymbols : {0}", myComp.Compare( myStr1, myStr2, CompareOptions.IgnoreCase | CompareOptions.IgnoreSymbols ) );
   }
}


/*
This code produces the following output.

Comparing "My Uncle Bill's clients" and "My uncle bills clients"
   With no CompareOptions            : 1
   With None                         : 1
   With Ordinal                      : -32
   With StringSort                   : -1
   With IgnoreCase                   : 1
   With IgnoreSymbols                : 1
   With IgnoreCase and IgnoreSymbols : 0

*/
Imports System.Globalization

Public Class SamplesCompareInfo

   Public Shared Sub Main()

      ' Defines the strings to compare.
      Dim myStr1 As [String] = "My Uncle Bill's clients"
      Dim myStr2 As [String] = "My uncle bills clients"

      ' Creates a CompareInfo that uses the InvariantCulture.
      Dim myComp As CompareInfo = CultureInfo.InvariantCulture.CompareInfo

      ' Compares two strings using myComp.
      Console.WriteLine("Comparing ""{0}"" and ""{1}""", myStr1, myStr2)
      Console.WriteLine("   With no CompareOptions            : {0}", myComp.Compare(myStr1, myStr2))
      Console.WriteLine("   With None                         : {0}", myComp.Compare(myStr1, myStr2, CompareOptions.None))
      Console.WriteLine("   With Ordinal                      : {0}", myComp.Compare(myStr1, myStr2, CompareOptions.Ordinal))
      Console.WriteLine("   With StringSort                   : {0}", myComp.Compare(myStr1, myStr2, CompareOptions.StringSort))
      Console.WriteLine("   With IgnoreCase                   : {0}", myComp.Compare(myStr1, myStr2, CompareOptions.IgnoreCase))
      Console.WriteLine("   With IgnoreSymbols                : {0}", myComp.Compare(myStr1, myStr2, CompareOptions.IgnoreSymbols))
      Console.WriteLine("   With IgnoreCase and IgnoreSymbols : {0}", myComp.Compare(myStr1, myStr2, CompareOptions.IgnoreCase Or CompareOptions.IgnoreSymbols))

   End Sub

End Class


'This code produces the following output.
'
'Comparing "My Uncle Bill's clients" and "My uncle bills clients"
'   With no CompareOptions            : 1
'   With None                         : 1
'   With Ordinal                      : -32
'   With StringSort                   : -1
'   With IgnoreCase                   : 1
'   With IgnoreSymbols                : 1
'   With IgnoreCase and IgnoreSymbols : 0

In het volgende voorbeeld ziet u hoe u de Compare methode aanroept.

using System;
using System.Text;
using System.Globalization;

public sealed class App
{
    static void Main(string[] args)
    {
        String[] sign = new String[] { "<", "=", ">" };

        // The code below demonstrates how strings compare
        // differently for different cultures.
        String s1 = "Coté", s2 = "coté", s3 = "côte";

        // Set sort order of strings for French in France.
        CompareInfo ci = new CultureInfo("fr-FR").CompareInfo;
        Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID);

        // Display the result using fr-FR Compare of Coté = coté.  	
        Console.WriteLine("fr-FR Compare: {0} {2} {1}",
            s1, s2, sign[ci.Compare(s1, s2, CompareOptions.IgnoreCase) + 1]);

        // Display the result using fr-FR Compare of coté > côte.
        Console.WriteLine("fr-FR Compare: {0} {2} {1}",
            s2, s3, sign[ci.Compare(s2, s3, CompareOptions.None) + 1]);

        // Set sort order of strings for Japanese as spoken in Japan.
        ci = new CultureInfo("ja-JP").CompareInfo;
        Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID);

        // Display the result using ja-JP Compare of coté < côte.
        Console.WriteLine("ja-JP Compare: {0} {2} {1}",
            s2, s3, sign[ci.Compare(s2, s3) + 1]);
    }
}

// This code produces the following output.
//
// The LCID for fr-FR is 1036.
// fr-FR Compare: Coté = coté
// fr-FR Compare: coté > côte
// The LCID for ja-JP is 1041.
// ja-JP Compare: coté < côte
Imports System.Text
Imports System.Globalization

NotInheritable Public Class App
    Shared Sub Main(ByVal args() As String) 
        Dim sign() As String = {"<", "=", ">"}
        
        ' The code below demonstrates how strings compare 
        ' differently for different cultures.
        Dim s1 As String = "Coté"
        Dim s2 As String = "coté"
        Dim s3 As String = "côte"
        
        ' Set sort order of strings for French in France.
        Dim ci As CompareInfo = New CultureInfo("fr-FR").CompareInfo
        Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID)
        
        ' Display the result using fr-FR Compare of Coté = coté.  	
        Console.WriteLine("fr-FR Compare: {0} {2} {1}", _
                          s1, s2, sign((ci.Compare(s1, s2, CompareOptions.IgnoreCase) + 1)))
        
        ' Display the result using fr-FR Compare of coté > côte.
        Console.WriteLine("fr-FR Compare: {0} {2} {1}", _
                          s2, s3, sign((ci.Compare(s2, s3, CompareOptions.None) + 1)))
        
        ' Set sort order of strings for Japanese as spoken in Japan.
        ci = New CultureInfo("ja-JP").CompareInfo
        Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID)
        
        ' Display the result using ja-JP Compare of coté < côte. 
        Console.WriteLine("ja-JP Compare: {0} {2} {1}", _
                          s2, s3, sign((ci.Compare(s2, s3) + 1)))
    End Sub
End Class

' This code produces the following output.
' 
' The LCID for fr-FR is 1036.
' fr-FR Compare: Coté = coté
' fr-FR Compare: coté > côte
' The LCID for ja-JP is 1041.
' ja-JP Compare: coté < côte

Opmerkingen

Als een beveiligingsbeslissing afhankelijk is van een tekenreeksvergelijking of een casewijziging, moet u de InvariantCulture eigenschap gebruiken om ervoor te zorgen dat het gedrag consistent is, ongeacht de cultuurinstellingen van het besturingssysteem.

Note

Indien mogelijk moet u vergelijkingsmethoden voor tekenreeksen aanroepen die een parameter van het type CompareOptions hebben om het type vergelijking op te geven dat wordt verwacht. Als algemene regel gebruikt u taalkundige opties (met behulp van de huidige cultuur) om tekenreeksen te vergelijken die worden weergegeven in de gebruikersinterface en specificeert u Ordinal of OrdinalIgnoreCase voor beveiligingsvergelijkingen.

Notities voor bellers

Tekensets bevatten negeerbare tekens. Dit zijn tekens die niet worden overwogen bij het uitvoeren van een taalkundige of cultuurgevoelige vergelijking. De Compare(String, String, CompareOptions) methode beschouwt dergelijke tekens niet wanneer er een cultuurgevoelige vergelijking wordt uitgevoerd. Als u negeerbare tekens in uw vergelijking wilt herkennen, geeft u een waarde van Ordinal of OrdinalIgnoreCase voor de options parameter op.

Zie ook

Van toepassing op

Compare(String, Int32, String, Int32)

Vergelijkt de eindsectie van een tekenreeks met de eindsectie van een andere tekenreeks.

public:
 virtual int Compare(System::String ^ string1, int offset1, System::String ^ string2, int offset2);
public virtual int Compare(string string1, int offset1, string string2, int offset2);
abstract member Compare : string * int * string * int -> int
override this.Compare : string * int * string * int -> int
Public Overridable Function Compare (string1 As String, offset1 As Integer, string2 As String, offset2 As Integer) As Integer

Parameters

string1
String

De eerste tekenreeks die moet worden vergeleken.

offset1
Int32

De op nul gebaseerde index van het teken string1 waarin moet worden vergeleken.

string2
String

De tweede tekenreeks die moet worden vergeleken.

offset2
Int32

De op nul gebaseerde index van het teken string2 waarin moet worden vergeleken.

Retouren

Een 32-bits geheel getal dat de lexicale relatie tussen de twee comparands aangeeft.

Waarde Conditie
Nul De twee tekenreeksen zijn gelijk.
kleiner dan nul De opgegeven sectie van string1 is kleiner dan de opgegeven sectie van string2.
groter dan nul De opgegeven sectie van string1 is groter dan de opgegeven sectie van string2.

Uitzonderingen

offset1 of offset2 kleiner is dan nul.

– of –

offset1 is groter dan of gelijk aan het aantal tekens in string1.

– of –

offset2 is groter dan of gelijk aan het aantal tekens in string2.

Voorbeelden

In het volgende voorbeeld worden delen van twee tekenreeksen vergeleken met behulp van de verschillende CompareInfo objecten:

using System;
using System.Globalization;

public class SamplesCompareInfo  {

   public static void Main()  {

      // Defines the strings to compare.
      String myStr1 = "calle";
      String myStr2 = "calor";

      // Uses GetCompareInfo to create the CompareInfo that uses the "es-ES" culture with international sort.
      CompareInfo myCompIntl = CompareInfo.GetCompareInfo( "es-ES" );

      // Uses GetCompareInfo to create the CompareInfo that uses the "es-ES" culture with traditional sort.
      CompareInfo myCompTrad = CompareInfo.GetCompareInfo( 0x040A );

      // Uses the CompareInfo property of the InvariantCulture.
      CompareInfo myCompInva = CultureInfo.InvariantCulture.CompareInfo;

      // Compares two strings using myCompIntl.
      Console.WriteLine( "Comparing \"{0}\" and \"{1}\"", myStr1.Substring( 2 ), myStr2.Substring( 2 ) );
      Console.WriteLine( "   With myCompIntl.Compare: {0}", myCompIntl.Compare( myStr1, 2, myStr2, 2 ) );
      Console.WriteLine( "   With myCompTrad.Compare: {0}", myCompTrad.Compare( myStr1, 2, myStr2, 2 ) );
      Console.WriteLine( "   With myCompInva.Compare: {0}", myCompInva.Compare( myStr1, 2, myStr2, 2 ) );
   }
}


/*
This code produces the following output.

Comparing "lle" and "lor"
   With myCompIntl.Compare: -1
   With myCompTrad.Compare: 1
   With myCompInva.Compare: -1

*/
Imports System.Globalization

Public Class SamplesCompareInfo

   Public Shared Sub Main()

      ' Defines the strings to compare.
      Dim myStr1 As [String] = "calle"
      Dim myStr2 As [String] = "calor"

      ' Uses GetCompareInfo to create the CompareInfo that uses the "es-ES" culture with international sort.
      Dim myCompIntl As CompareInfo = CompareInfo.GetCompareInfo("es-ES")

      ' Uses GetCompareInfo to create the CompareInfo that uses the "es-ES" culture with traditional sort.
      Dim myCompTrad As CompareInfo = CompareInfo.GetCompareInfo(&H40A)

      ' Uses the CompareInfo property of the InvariantCulture.
      Dim myCompInva As CompareInfo = CultureInfo.InvariantCulture.CompareInfo

      ' Compares two strings using myCompIntl.
      Console.WriteLine("Comparing ""{0}"" and ""{1}""", myStr1.Substring(2), myStr2.Substring(2))
      Console.WriteLine("   With myCompIntl.Compare: {0}", myCompIntl.Compare(myStr1, 2, myStr2, 2))
      Console.WriteLine("   With myCompTrad.Compare: {0}", myCompTrad.Compare(myStr1, 2, myStr2, 2))
      Console.WriteLine("   With myCompInva.Compare: {0}", myCompInva.Compare(myStr1, 2, myStr2, 2))

   End Sub

End Class


'This code produces the following output.
'
'Comparing "lle" and "lor"
'   With myCompIntl.Compare: -1
'   With myCompTrad.Compare: 1
'   With myCompInva.Compare: -1

Opmerkingen

Als een beveiligingsbeslissing afhankelijk is van een tekenreeksvergelijking of een casewijziging, moet u de InvariantCulture eigenschap gebruiken om ervoor te zorgen dat het gedrag consistent is, ongeacht de cultuurinstellingen van het besturingssysteem.

Note

Indien mogelijk moet u vergelijkingsmethoden voor tekenreeksen aanroepen die een parameter van het type CompareOptions hebben om het type vergelijking op te geven dat wordt verwacht. Als algemene regel gebruikt u taalkundige opties (met behulp van de huidige cultuur) om tekenreeksen te vergelijken die worden weergegeven in de gebruikersinterface en specificeert u Ordinal of OrdinalIgnoreCase voor beveiligingsvergelijkingen.

Notities voor bellers

Tekensets bevatten negeerbare tekens. De Compare(String, Int32, String, Int32) methode beschouwt deze tekens niet wanneer er een taalkundige of cultuurgevoelige vergelijking wordt uitgevoerd. Als u negeerbare tekens in uw vergelijking wilt herkennen, roept u de Compare(String, Int32, String, Int32, CompareOptions) methode aan en geeft u een waarde van Ordinal of OrdinalIgnoreCase voor de options parameter op.

Van toepassing op

Compare(String, Int32, String, Int32, CompareOptions)

Vergelijkt de eindsectie van een tekenreeks met de eindsectie van een andere tekenreeks met behulp van de opgegeven CompareOptions waarde.

public:
 virtual int Compare(System::String ^ string1, int offset1, System::String ^ string2, int offset2, System::Globalization::CompareOptions options);
public virtual int Compare(string string1, int offset1, string string2, int offset2, System.Globalization.CompareOptions options);
abstract member Compare : string * int * string * int * System.Globalization.CompareOptions -> int
override this.Compare : string * int * string * int * System.Globalization.CompareOptions -> int
Public Overridable Function Compare (string1 As String, offset1 As Integer, string2 As String, offset2 As Integer, options As CompareOptions) As Integer

Parameters

string1
String

De eerste tekenreeks die moet worden vergeleken.

offset1
Int32

De op nul gebaseerde index van het teken string1 waarin moet worden vergeleken.

string2
String

De tweede tekenreeks die moet worden vergeleken.

offset2
Int32

De op nul gebaseerde index van het teken string2 waarin moet worden vergeleken.

options
CompareOptions

Een waarde die definieert hoe string1 en string2 moet worden vergeleken. optionsis de opsommingswaarde Ordinalof een bitsgewijze combinatie van een of meer van de volgende waarden: IgnoreCase, , IgnoreSymbols, IgnoreNonSpace, IgnoreWidth, , IgnoreKanaType, en NumericOrdering.StringSort

Retouren

Een 32-bits geheel getal dat de lexicale relatie tussen de twee comparands aangeeft.

Waarde Conditie
Nul De twee tekenreeksen zijn gelijk.
kleiner dan nul De opgegeven sectie van string1 is kleiner dan de opgegeven sectie van string2.
groter dan nul De opgegeven sectie van string1 is groter dan de opgegeven sectie van string2.

Uitzonderingen

offset1 of offset2 kleiner is dan nul.

– of –

offset1 is groter dan of gelijk aan het aantal tekens in string1.

– of –

offset2 is groter dan of gelijk aan het aantal tekens in string2.

options bevat een ongeldige CompareOptions waarde.

Voorbeelden

In het volgende voorbeeld worden delen van twee tekenreeksen vergeleken met behulp van verschillende CompareOptions instellingen.

using System;
using System.Globalization;

public class SamplesCompareInfo  {

   public static void Main()  {

      // Defines the strings to compare.
      String myStr1 = "My Uncle Bill's clients";
      String myStr2 = "My uncle bills clients";

      // Creates a CompareInfo that uses the InvariantCulture.
      CompareInfo myComp = CultureInfo.InvariantCulture.CompareInfo;

      // Compares two strings using myComp.
      Console.WriteLine( "Comparing \"{0}\" and \"{1}\"", myStr1.Substring( 10 ), myStr2.Substring( 10 ) );
      Console.WriteLine( "   With no CompareOptions            : {0}", myComp.Compare( myStr1, 10, myStr2, 10 ) );
      Console.WriteLine( "   With None                         : {0}", myComp.Compare( myStr1, 10, myStr2, 10, CompareOptions.None ) );
      Console.WriteLine( "   With Ordinal                      : {0}", myComp.Compare( myStr1, 10, myStr2, 10, CompareOptions.Ordinal ) );
      Console.WriteLine( "   With StringSort                   : {0}", myComp.Compare( myStr1, 10, myStr2, 10, CompareOptions.StringSort ) );
      Console.WriteLine( "   With IgnoreCase                   : {0}", myComp.Compare( myStr1, 10, myStr2, 10, CompareOptions.IgnoreCase ) );
      Console.WriteLine( "   With IgnoreSymbols                : {0}", myComp.Compare( myStr1, 10, myStr2, 10, CompareOptions.IgnoreSymbols ) );
      Console.WriteLine( "   With IgnoreCase and IgnoreSymbols : {0}", myComp.Compare( myStr1, 10, myStr2, 10, CompareOptions.IgnoreCase | CompareOptions.IgnoreSymbols ) );
   }
}


/*
This code produces the following output.

Comparing "ill's clients" and "ills clients"
   With no CompareOptions            : 1
   With None                         : 1
   With Ordinal                      : -76
   With StringSort                   : -1
   With IgnoreCase                   : 1
   With IgnoreSymbols                : 0
   With IgnoreCase and IgnoreSymbols : 0

*/
Imports System.Globalization

Public Class SamplesCompareInfo

   Public Shared Sub Main()

      ' Defines the strings to compare.
      Dim myStr1 As [String] = "My Uncle Bill's clients"
      Dim myStr2 As [String] = "My uncle bills clients"

      ' Creates a CompareInfo that uses the InvariantCulture.
      Dim myComp As CompareInfo = CultureInfo.InvariantCulture.CompareInfo

      ' Compares two strings using myComp.
      Console.WriteLine("Comparing ""{0}"" and ""{1}""", myStr1.Substring(10), myStr2.Substring(10))
      Console.WriteLine("   With no CompareOptions            : {0}", myComp.Compare(myStr1, 10, myStr2, 10))
      Console.WriteLine("   With None                         : {0}", myComp.Compare(myStr1, 10, myStr2, 10, CompareOptions.None))
      Console.WriteLine("   With Ordinal                      : {0}", myComp.Compare(myStr1, 10, myStr2, 10, CompareOptions.Ordinal))
      Console.WriteLine("   With StringSort                   : {0}", myComp.Compare(myStr1, 10, myStr2, 10, CompareOptions.StringSort))
      Console.WriteLine("   With IgnoreCase                   : {0}", myComp.Compare(myStr1, 10, myStr2, 10, CompareOptions.IgnoreCase))
      Console.WriteLine("   With IgnoreSymbols                : {0}", myComp.Compare(myStr1, 10, myStr2, 10, CompareOptions.IgnoreSymbols))
      Console.WriteLine("   With IgnoreCase and IgnoreSymbols : {0}", myComp.Compare(myStr1, 10, myStr2, 10, CompareOptions.IgnoreCase Or CompareOptions.IgnoreSymbols))

   End Sub

End Class


'This code produces the following output.
'
'Comparing "ill's clients" and "ills clients"
'   With no CompareOptions            : 1
'   With None                         : 1
'   With Ordinal                      : -76
'   With StringSort                   : -1
'   With IgnoreCase                   : 1
'   With IgnoreSymbols                : 0
'   With IgnoreCase and IgnoreSymbols : 0

Opmerkingen

Als een beveiligingsbeslissing afhankelijk is van een tekenreeksvergelijking of een casewijziging, moet u de InvariantCulture eigenschap gebruiken om ervoor te zorgen dat het gedrag consistent is, ongeacht de cultuurinstellingen van het besturingssysteem.

Note

Indien mogelijk moet u vergelijkingsmethoden voor tekenreeksen aanroepen die een parameter van het type CompareOptions hebben om het type vergelijking op te geven dat wordt verwacht. Als algemene regel gebruikt u taalkundige opties (met behulp van de huidige cultuur) om tekenreeksen te vergelijken die worden weergegeven in de gebruikersinterface en specificeert u Ordinal of OrdinalIgnoreCase voor beveiligingsvergelijkingen.

Notities voor bellers

Tekensets bevatten negeerbare tekens. Dit zijn tekens die niet worden overwogen bij het uitvoeren van een taalkundige of cultuurgevoelige vergelijking. De Compare(String, Int32, String, Int32, CompareOptions) methode beschouwt dergelijke tekens niet bij het uitvoeren van een cultuurgevoelige vergelijking. Als u negeerbare tekens in uw vergelijking wilt herkennen, geeft u een waarde van Ordinal of OrdinalIgnoreCase voor de options parameter op.

Zie ook

Van toepassing op

Compare(String, Int32, Int32, String, Int32, Int32)

Vergelijkt een sectie van de ene tekenreeks met een sectie van een andere tekenreeks.

public:
 virtual int Compare(System::String ^ string1, int offset1, int length1, System::String ^ string2, int offset2, int length2);
public virtual int Compare(string string1, int offset1, int length1, string string2, int offset2, int length2);
abstract member Compare : string * int * int * string * int * int -> int
override this.Compare : string * int * int * string * int * int -> int
Public Overridable Function Compare (string1 As String, offset1 As Integer, length1 As Integer, string2 As String, offset2 As Integer, length2 As Integer) As Integer

Parameters

string1
String

De eerste tekenreeks die moet worden vergeleken.

offset1
Int32

De op nul gebaseerde index van het teken string1 waarin moet worden vergeleken.

length1
Int32

Het aantal opeenvolgende tekens dat string1 moet worden vergeleken.

string2
String

De tweede tekenreeks die moet worden vergeleken.

offset2
Int32

De op nul gebaseerde index van het teken string2 waarin moet worden vergeleken.

length2
Int32

Het aantal opeenvolgende tekens dat string2 moet worden vergeleken.

Retouren

Een 32-bits geheel getal dat de lexicale relatie tussen de twee comparands aangeeft.

Waarde Conditie
Nul De twee tekenreeksen zijn gelijk.
kleiner dan nul De opgegeven sectie van string1 is kleiner dan de opgegeven sectie van string2.
groter dan nul De opgegeven sectie van string1 is groter dan de opgegeven sectie van string2.

Uitzonderingen

offset1 of length1offset2length2 is kleiner dan nul.

– of –

offset1 is groter dan of gelijk aan het aantal tekens in string1.

– of –

offset2 is groter dan of gelijk aan het aantal tekens in string2.

– of –

length1 is groter dan het aantal tekens van offset1 tot het einde van string1.

– of –

length2 is groter dan het aantal tekens van offset2 tot het einde van string2.

Voorbeelden

In het volgende voorbeeld worden delen van twee tekenreeksen vergeleken met behulp van de verschillende CompareInfo objecten:

using System;
using System.Globalization;

public class SamplesCompareInfo  {

   public static void Main()  {

      // Defines the strings to compare.
      String myStr1 = "calle";
      String myStr2 = "calor";

      // Uses GetCompareInfo to create the CompareInfo that uses the "es-ES" culture with international sort.
      CompareInfo myCompIntl = CompareInfo.GetCompareInfo( "es-ES" );

      // Uses GetCompareInfo to create the CompareInfo that uses the "es-ES" culture with traditional sort.
      CompareInfo myCompTrad = CompareInfo.GetCompareInfo( 0x040A );

      // Uses the CompareInfo property of the InvariantCulture.
      CompareInfo myCompInva = CultureInfo.InvariantCulture.CompareInfo;

      // Compares two strings using myCompIntl.
      Console.WriteLine( "Comparing \"{0}\" and \"{1}\"", myStr1.Substring( 2, 2 ), myStr2.Substring( 2, 2 ) );
      Console.WriteLine( "   With myCompIntl.Compare: {0}", myCompIntl.Compare( myStr1, 2, 2, myStr2, 2, 2 ) );
      Console.WriteLine( "   With myCompTrad.Compare: {0}", myCompTrad.Compare( myStr1, 2, 2, myStr2, 2, 2 ) );
      Console.WriteLine( "   With myCompInva.Compare: {0}", myCompInva.Compare( myStr1, 2, 2, myStr2, 2, 2 ) );
   }
}


/*
This code produces the following output.

Comparing "ll" and "lo"
   With myCompIntl.Compare: -1
   With myCompTrad.Compare: 1
   With myCompInva.Compare: -1

*/
Imports System.Globalization

Public Class SamplesCompareInfo

   Public Shared Sub Main()

      ' Defines the strings to compare.
      Dim myStr1 As [String] = "calle"
      Dim myStr2 As [String] = "calor"

      ' Uses GetCompareInfo to create the CompareInfo that uses the "es-ES" culture with international sort.
      Dim myCompIntl As CompareInfo = CompareInfo.GetCompareInfo("es-ES")

      ' Uses GetCompareInfo to create the CompareInfo that uses the "es-ES" culture with traditional sort.
      Dim myCompTrad As CompareInfo = CompareInfo.GetCompareInfo(&H40A)

      ' Uses the CompareInfo property of the InvariantCulture.
      Dim myCompInva As CompareInfo = CultureInfo.InvariantCulture.CompareInfo

      ' Compares two strings using myCompIntl.
      Console.WriteLine("Comparing ""{0}"" and ""{1}""", myStr1.Substring(2, 2), myStr2.Substring(2, 2))
      Console.WriteLine("   With myCompIntl.Compare: {0}", myCompIntl.Compare(myStr1, 2, 2, myStr2, 2, 2))
      Console.WriteLine("   With myCompTrad.Compare: {0}", myCompTrad.Compare(myStr1, 2, 2, myStr2, 2, 2))
      Console.WriteLine("   With myCompInva.Compare: {0}", myCompInva.Compare(myStr1, 2, 2, myStr2, 2, 2))

   End Sub

End Class


'This code produces the following output.
'
'Comparing "ll" and "lo"
'   With myCompIntl.Compare: -1
'   With myCompTrad.Compare: 1
'   With myCompInva.Compare: -1

Opmerkingen

Als een beveiligingsbeslissing afhankelijk is van een tekenreeksvergelijking of een casewijziging, moet u de InvariantCulture eigenschap gebruiken om ervoor te zorgen dat het gedrag consistent is, ongeacht de cultuurinstellingen van het besturingssysteem.

Note

Indien mogelijk moet u tekenreeksvergelijkingsmethoden gebruiken die een parameter van het type CompareOptions hebben om het verwachte soort vergelijking op te geven. Als algemene regel gebruikt u taalkundige opties (met behulp van de huidige cultuur) om tekenreeksen te vergelijken die worden weergegeven in de gebruikersinterface en specificeert u Ordinal of OrdinalIgnoreCase voor beveiligingsvergelijkingen.

Notities voor bellers

Tekensets bevatten negeerbare tekens. De Compare(String, Int32, Int32, String, Int32, Int32) methode beschouwt deze tekens niet wanneer er een taalkundige of cultuurgevoelige vergelijking wordt uitgevoerd. Als u negeerbare tekens in uw vergelijking wilt herkennen, roept u de Compare(String, Int32, Int32, String, Int32, Int32, CompareOptions) methode aan en geeft u een waarde van Ordinal of OrdinalIgnoreCase voor de options parameter op.

Van toepassing op

Compare(String, Int32, Int32, String, Int32, Int32, CompareOptions)

Vergelijkt een sectie van de ene tekenreeks met een sectie van een andere tekenreeks met behulp van de opgegeven CompareOptions waarde.

public:
 virtual int Compare(System::String ^ string1, int offset1, int length1, System::String ^ string2, int offset2, int length2, System::Globalization::CompareOptions options);
public virtual int Compare(string string1, int offset1, int length1, string string2, int offset2, int length2, System.Globalization.CompareOptions options);
abstract member Compare : string * int * int * string * int * int * System.Globalization.CompareOptions -> int
override this.Compare : string * int * int * string * int * int * System.Globalization.CompareOptions -> int
Public Overridable Function Compare (string1 As String, offset1 As Integer, length1 As Integer, string2 As String, offset2 As Integer, length2 As Integer, options As CompareOptions) As Integer

Parameters

string1
String

De eerste tekenreeks die moet worden vergeleken.

offset1
Int32

De op nul gebaseerde index van het teken string1 waarin moet worden vergeleken.

length1
Int32

Het aantal opeenvolgende tekens dat string1 moet worden vergeleken.

string2
String

De tweede tekenreeks die moet worden vergeleken.

offset2
Int32

De op nul gebaseerde index van het teken string2 waarin moet worden vergeleken.

length2
Int32

Het aantal opeenvolgende tekens dat string2 moet worden vergeleken.

options
CompareOptions

Een waarde die definieert hoe string1 en string2 moet worden vergeleken. optionsis de opsommingswaarde Ordinalof een bitsgewijze combinatie van een of meer van de volgende waarden: IgnoreCase, , IgnoreSymbols, IgnoreNonSpace, IgnoreWidth, , IgnoreKanaType, en NumericOrdering.StringSort

Retouren

Een 32-bits geheel getal dat de lexicale relatie tussen de twee comparands aangeeft.

Waarde Conditie
Nul De twee tekenreeksen zijn gelijk.
kleiner dan nul De opgegeven sectie van string1 is kleiner dan de opgegeven sectie van string2.
groter dan nul De opgegeven sectie van string1 is groter dan de opgegeven sectie van string2.

Uitzonderingen

offset1 of length1offset2length2 is kleiner dan nul.

– of –

offset1 is groter dan of gelijk aan het aantal tekens in string1.

– of –

offset2 is groter dan of gelijk aan het aantal tekens in string2.

– of –

length1 is groter dan het aantal tekens van offset1 tot het einde van string1.

– of –

length2 is groter dan het aantal tekens van offset2 tot het einde van string2.

options bevat een ongeldige CompareOptions waarde.

Voorbeelden

In het volgende voorbeeld worden delen van twee tekenreeksen vergeleken met behulp van verschillende CompareOptions instellingen.

using System;
using System.Globalization;

public class SamplesCompareInfo  {

   public static void Main()  {

      // Defines the strings to compare.
      String myStr1 = "My Uncle Bill's clients";
      String myStr2 = "My uncle bills clients";

      // Creates a CompareInfo that uses the InvariantCulture.
      CompareInfo myComp = CultureInfo.InvariantCulture.CompareInfo;

      // Compares two strings using myComp.
      Console.WriteLine( "Comparing \"{0}\" and \"{1}\"", myStr1.Substring( 3, 10 ), myStr2.Substring( 3, 10 ) );
      Console.WriteLine( "   With no CompareOptions            : {0}", myComp.Compare( myStr1, 3, 10, myStr2, 3, 10 ) );
      Console.WriteLine( "   With None                         : {0}", myComp.Compare( myStr1, 3, 10, myStr2, 3, 10, CompareOptions.None ) );
      Console.WriteLine( "   With Ordinal                      : {0}", myComp.Compare( myStr1, 3, 10, myStr2, 3, 10, CompareOptions.Ordinal ) );
      Console.WriteLine( "   With StringSort                   : {0}", myComp.Compare( myStr1, 3, 10, myStr2, 3, 10, CompareOptions.StringSort ) );
      Console.WriteLine( "   With IgnoreCase                   : {0}", myComp.Compare( myStr1, 3, 10, myStr2, 3, 10, CompareOptions.IgnoreCase ) );
      Console.WriteLine( "   With IgnoreSymbols                : {0}", myComp.Compare( myStr1, 3, 10, myStr2, 3, 10, CompareOptions.IgnoreSymbols ) );
      Console.WriteLine( "   With IgnoreCase and IgnoreSymbols : {0}", myComp.Compare( myStr1, 3, 10, myStr2, 3, 10, CompareOptions.IgnoreCase | CompareOptions.IgnoreSymbols ) );
   }
}


/*
This code produces the following output.

Comparing "Uncle Bill" and "uncle bill"
   With no CompareOptions            : 1
   With None                         : 1
   With Ordinal                      : -32
   With StringSort                   : 1
   With IgnoreCase                   : 0
   With IgnoreSymbols                : 1
   With IgnoreCase and IgnoreSymbols : 0

*/
Imports System.Globalization

Public Class SamplesCompareInfo

   Public Shared Sub Main()

      ' Defines the strings to compare.
      Dim myStr1 As [String] = "My Uncle Bill's clients"
      Dim myStr2 As [String] = "My uncle bills clients"

      ' Creates a CompareInfo that uses the InvariantCulture.
      Dim myComp As CompareInfo = CultureInfo.InvariantCulture.CompareInfo

      ' Compares two strings using myComp.
      Console.WriteLine("Comparing ""{0}"" and ""{1}""", myStr1.Substring(3, 10), myStr2.Substring(3, 10))
      Console.WriteLine("   With no CompareOptions            : {0}", myComp.Compare(myStr1, 3, 10, myStr2, 3, 10))
      Console.WriteLine("   With None                         : {0}", myComp.Compare(myStr1, 3, 10, myStr2, 3, 10, CompareOptions.None))
      Console.WriteLine("   With Ordinal                      : {0}", myComp.Compare(myStr1, 3, 10, myStr2, 3, 10, CompareOptions.Ordinal))
      Console.WriteLine("   With StringSort                   : {0}", myComp.Compare(myStr1, 3, 10, myStr2, 3, 10, CompareOptions.StringSort))
      Console.WriteLine("   With IgnoreCase                   : {0}", myComp.Compare(myStr1, 3, 10, myStr2, 3, 10, CompareOptions.IgnoreCase))
      Console.WriteLine("   With IgnoreSymbols                : {0}", myComp.Compare(myStr1, 3, 10, myStr2, 3, 10, CompareOptions.IgnoreSymbols))
      Console.WriteLine("   With IgnoreCase and IgnoreSymbols : {0}", myComp.Compare(myStr1, 3, 10, myStr2, 3, 10, CompareOptions.IgnoreCase Or CompareOptions.IgnoreSymbols))

   End Sub

End Class


'This code produces the following output.
'
'Comparing "Uncle Bill" and "uncle bill"
'   With no CompareOptions            : 1
'   With None                         : 1
'   With Ordinal                      : -32
'   With StringSort                   : 1
'   With IgnoreCase                   : 0
'   With IgnoreSymbols                : 1
'   With IgnoreCase and IgnoreSymbols : 0

Opmerkingen

Als een beveiligingsbeslissing afhankelijk is van een tekenreeksvergelijking of een casewijziging, moet u de InvariantCulture eigenschap gebruiken om ervoor te zorgen dat het gedrag consistent is, ongeacht de cultuurinstellingen van het besturingssysteem.

Note

Indien mogelijk moet u vergelijkingsmethoden voor tekenreeksen aanroepen die een parameter van het type CompareOptions hebben om het type vergelijking op te geven dat wordt verwacht. Als algemene regel gebruikt u taalkundige opties (met behulp van de huidige cultuur) om tekenreeksen te vergelijken die worden weergegeven in de gebruikersinterface en specificeert u Ordinal of OrdinalIgnoreCase voor beveiligingsvergelijkingen.

Notities voor bellers

Tekensets bevatten negeerbare tekens. De Compare(String, Int32, Int32, String, Int32, Int32, CompareOptions) methode beschouwt deze tekens niet wanneer er een cultuurgevoelige vergelijking wordt uitgevoerd. Als u negeerbare tekens in uw vergelijking wilt herkennen, geeft u een waarde van Ordinal of OrdinalIgnoreCase voor de options parameter op.

Zie ook

Van toepassing op