CompareInfo.Compare Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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:
- CompareInfo object gekoppeld aan de Spaanse (Spanje) cultuur met internationale sortering
- CompareInfo object gekoppeld aan de Spaanse (Spanje) cultuur met traditionele sortering
- CompareInfo object dat is gekoppeld aan de InvariantCulture
// 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:
CompareInfo object gekoppeld aan de Spaanse (Spanje) cultuur met internationale sortering
CompareInfo object gekoppeld aan de Spaanse (Spanje) cultuur met traditionele sortering
CompareInfo object dat is gekoppeld aan de 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.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:
CompareInfo object gekoppeld aan de Spaanse (Spanje) cultuur met internationale sortering
CompareInfo object gekoppeld aan de Spaanse (Spanje) cultuur met traditionele sortering
CompareInfo object dat is gekoppeld aan de 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.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.