CompareInfo.Compare Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Porovná dva řetězce.
Přetížení
| Name | Description |
|---|---|
| Compare(String, String) |
Porovná dva řetězce. |
| Compare(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions) |
Porovná dvě rozsahy znaků jen pro čtení. |
| Compare(String, String, CompareOptions) |
Porovná dva řetězce pomocí zadané CompareOptions hodnoty. |
| Compare(String, Int32, String, Int32) |
Porovná koncovou část řetězce s koncovou částí jiného řetězce. |
| Compare(String, Int32, String, Int32, CompareOptions) |
Porovná koncový oddíl řetězce s koncovou částí jiného řetězce pomocí zadané CompareOptions hodnoty. |
| Compare(String, Int32, Int32, String, Int32, Int32) |
Porovná část jednoho řetězce s oddílem jiného řetězce. |
| Compare(String, Int32, Int32, String, Int32, Int32, CompareOptions) |
Porovná oddíl jednoho řetězce s oddílem jiného řetězce pomocí zadané CompareOptions hodnoty. |
Compare(String, String)
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
Porovná dva řetězce.
public:
virtual int Compare(System::String ^ string1, System::String ^ string2);
public:
int Compare(System::String ^ string1, System::String ^ string2);
public virtual int Compare(string string1, string string2);
public int Compare(string? string1, string? string2);
public virtual int Compare(string? string1, string? string2);
abstract member Compare : string * string -> int
override this.Compare : string * string -> int
member this.Compare : string * string -> int
Public Overridable Function Compare (string1 As String, string2 As String) As Integer
Public Function Compare (string1 As String, string2 As String) As Integer
Parametry
- string1
- String
První řetězec určený k porovnání
- string2
- String
Druhý řetězec určený k porovnání
Návraty
32bitové celé číslo se znaménkem označující lexikální vztah mezi těmito dvěma porovnávacími znaménkami.
| Hodnota | Podmínka |
|---|---|
| Nula | Oba řetězce jsou stejné. |
| menší než nula |
string1 je menší než string2.
|
| větší než nula |
string1 je větší než string2.
|
Příklady
Následující příklad porovnává části dvou řetězců pomocí různých CompareInfo objektů:
- CompareInfo objekt přidružený k jazykové verzi španělštiny (Španělsko) s mezinárodním řazením
- CompareInfo objekt přidružený k jazykové verzi španělštiny (Španělsko) s tradičním řazením
- CompareInfo objekt přidružený k objektu 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
Následující příklad ukazuje volání Compare metody.
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
Poznámky
Ve výchozím nastavení se porovnání provádí pomocí CompareOptions.None. Pokud rozhodnutí o zabezpečení závisí na porovnání řetězců nebo změně případu, měli byste pomocí InvariantCulture vlastnosti zajistit, aby chování bylo konzistentní bez ohledu na nastavení jazykové verze operačního systému.
Poznámka:
Pokud je to možné, měli byste volat metody porovnání řetězců, které mají parametr typu CompareOptions k určení druhu očekávaného porovnání. Obecně platí, že pro porovnávání řetězců zobrazených v uživatelském rozhraní použijte jazykové volby (s využitím aktuální kultury) a zadejte Ordinal nebo OrdinalIgnoreCase pro bezpečnostní porovnání.
Poznámky pro volající
Znakové sady obsahují ignorovatelné znaky, což jsou znaky, které se při provádění jazykového nebo kulturně citlivého porovnání nerozlišují. Metoda Compare(String, String) nebere v úvahu takové znaky při provádění porovnání citlivé na jazykovou verzi. Například porovnání "animal" s "ani-mal" (pomocí měkkého spojovníku nebo U+00AD) označuje, že tyto dva řetězce jsou ekvivalentní, jak ukazuje následující příklad.
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
Chcete-li rozpoznat ignorovatelné znaky v porovnání řetězců, zavolejte metodu Compare(String, String, CompareOptions) a zadejte hodnotu buď Ordinal nebo OrdinalIgnoreCase pro options parametr.
Platí pro
Compare(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions)
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
Porovná dvě rozsahy znaků jen pro čtení.
public int Compare(ReadOnlySpan<char> string1, ReadOnlySpan<char> string2, System.Globalization.CompareOptions options = System.Globalization.CompareOptions.None);
member this.Compare : ReadOnlySpan<char> * ReadOnlySpan<char> * System.Globalization.CompareOptions -> int
Public Function Compare (string1 As ReadOnlySpan(Of Char), string2 As ReadOnlySpan(Of Char), Optional options As CompareOptions = System.Globalization.CompareOptions.None) As Integer
Parametry
- string1
- ReadOnlySpan<Char>
První rozsah znaků jen pro čtení, které se mají porovnat.
- string2
- ReadOnlySpan<Char>
Druhé rozsahy znaků jen pro čtení, které se mají porovnat.
- options
- CompareOptions
Volitelná kombinace hodnot výčtu CompareOptions , které se mají použít při porovnání. Výchozí hodnota je None.
Návraty
Nula pokud string1 a string2 jsou rovny; nebo záporná hodnota, pokud string1 se seřadí před string2; nebo kladnou hodnotu, pokud se string1 seřadí za string2.
Výjimky
options obsahuje nepodporovanou kombinaci příznaků.
Platí pro
Compare(String, String, CompareOptions)
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
Porovná dva řetězce pomocí zadané CompareOptions hodnoty.
public:
virtual int Compare(System::String ^ string1, System::String ^ string2, System::Globalization::CompareOptions options);
public:
int Compare(System::String ^ string1, System::String ^ string2, System::Globalization::CompareOptions options);
public virtual int Compare(string string1, string string2, System.Globalization.CompareOptions options);
public int Compare(string? string1, 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
member this.Compare : string * string * System.Globalization.CompareOptions -> int
Public Overridable Function Compare (string1 As String, string2 As String, options As CompareOptions) As Integer
Public Function Compare (string1 As String, string2 As String, options As CompareOptions) As Integer
Parametry
- string1
- String
První řetězec určený k porovnání
- string2
- String
Druhý řetězec určený k porovnání
- options
- CompareOptions
Hodnota, která definuje, jak string1 a string2 má být porovnána.
optionsje buď hodnota Ordinalvýčtu , nebo bitová kombinace jedné nebo více následujících hodnot: IgnoreCase, IgnoreSymbols, , IgnoreWidthIgnoreNonSpace, , IgnoreKanaTypeNumericOrderinga StringSort.
Návraty
32bitové celé číslo se znaménkem označující lexikální vztah mezi těmito dvěma porovnávacími znaménkami.
| Hodnota | Podmínka |
|---|---|
| Nula | Oba řetězce jsou stejné. |
| menší než nula |
string1 je menší než string2.
|
| větší než nula |
string1 je větší než string2.
|
Výjimky
options obsahuje neplatnou CompareOptions hodnotu.
Příklady
Následující příklad porovnává dva řetězce pomocí různých CompareOptions nastavení.
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
Následující příklad ukazuje volání Compare metody.
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
Poznámky
Pokud rozhodnutí o zabezpečení závisí na porovnání řetězců nebo změně případu, měli byste pomocí InvariantCulture vlastnosti zajistit, aby chování bylo konzistentní bez ohledu na nastavení jazykové verze operačního systému.
Poznámka:
Pokud je to možné, měli byste volat metody porovnání řetězců, které mají parametr typu CompareOptions k určení druhu očekávaného porovnání. Obecně platí, že pro porovnávání řetězců zobrazených v uživatelském rozhraní použijte jazykové volby (s využitím aktuální kultury) a zadejte Ordinal nebo OrdinalIgnoreCase pro bezpečnostní porovnání.
Poznámky pro volající
Znakové sady obsahují ignorovatelné znaky, což jsou znaky, které se při provádění jazykového nebo kulturně citlivého porovnání nerozlišují. Metoda Compare(String, String, CompareOptions) nebere v úvahu takové znaky při provádění porovnání citlivé na jazykovou verzi. Pokud chcete rozpoznat ignorovatelné znaky ve srovnání, zadejte hodnotu Ordinal parametru options nebo OrdinalIgnoreCase hodnotu.
Viz také
Platí pro
Compare(String, Int32, String, Int32)
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
Porovná koncovou část řetězce s koncovou částí jiného řetězce.
public:
virtual int Compare(System::String ^ string1, int offset1, System::String ^ string2, int offset2);
public:
int Compare(System::String ^ string1, int offset1, System::String ^ string2, int offset2);
public virtual int Compare(string string1, int offset1, string string2, int offset2);
public int Compare(string? string1, int offset1, 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
member 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
Public Function Compare (string1 As String, offset1 As Integer, string2 As String, offset2 As Integer) As Integer
Parametry
- string1
- String
První řetězec určený k porovnání
- offset1
- Int32
Index znaku založený na nule, ve string1 kterém se má začít porovnávat.
- string2
- String
Druhý řetězec určený k porovnání
- offset2
- Int32
Index znaku založený na nule, ve string2 kterém se má začít porovnávat.
Návraty
32bitové celé číslo se znaménkem označující lexikální vztah mezi těmito dvěma porovnávacími znaménkami.
| Hodnota | Podmínka |
|---|---|
| Nula | Oba řetězce jsou stejné. |
| menší než nula | Zadaný oddíl string1 je menší než zadaný oddíl .string2
|
| větší než nula | Zadaný oddíl string1 je větší než zadaný oddíl .string2
|
Výjimky
offset1 nebo offset2 je menší než nula.
nebo
offset1 je větší než nebo roven počtu znaků v string1argumentu .
nebo
offset2 je větší než nebo roven počtu znaků v string2argumentu .
Příklady
Následující příklad porovnává části dvou řetězců pomocí různých CompareInfo objektů:
CompareInfo objekt přidružený k jazykové verzi španělštiny (Španělsko) s mezinárodním řazením
CompareInfo objekt přidružený k jazykové verzi španělštiny (Španělsko) s tradičním řazením
CompareInfo objekt přidružený k objektu 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
Poznámky
Pokud rozhodnutí o zabezpečení závisí na porovnání řetězců nebo změně případu, měli byste pomocí InvariantCulture vlastnosti zajistit, aby chování bylo konzistentní bez ohledu na nastavení jazykové verze operačního systému.
Poznámka:
Pokud je to možné, měli byste volat metody porovnání řetězců, které mají parametr typu CompareOptions k určení druhu očekávaného porovnání. Obecně platí, že pro porovnávání řetězců zobrazených v uživatelském rozhraní použijte jazykové volby (s využitím aktuální kultury) a zadejte Ordinal nebo OrdinalIgnoreCase pro bezpečnostní porovnání.
Poznámky pro volající
Znakové sady obsahují ignorovatelné znaky. Metoda Compare(String, Int32, String, Int32) tyto znaky nebere v úvahu při provádění jazykového nebo jazykového porovnání. Chcete-li rozpoznat ignorovatelné znaky ve srovnání, zavolejte metodu Compare(String, Int32, String, Int32, CompareOptions) a zadejte hodnotu Ordinal nebo OrdinalIgnoreCase parametr.options
Platí pro
Compare(String, Int32, String, Int32, CompareOptions)
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
Porovná koncový oddíl řetězce s koncovou částí jiného řetězce pomocí zadané CompareOptions hodnoty.
public:
virtual int Compare(System::String ^ string1, int offset1, System::String ^ string2, int offset2, System::Globalization::CompareOptions options);
public:
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);
public int Compare(string? string1, int offset1, 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
member 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
Public Function Compare (string1 As String, offset1 As Integer, string2 As String, offset2 As Integer, options As CompareOptions) As Integer
Parametry
- string1
- String
První řetězec určený k porovnání
- offset1
- Int32
Index znaku založený na nule, ve string1 kterém se má začít porovnávat.
- string2
- String
Druhý řetězec určený k porovnání
- offset2
- Int32
Index znaku založený na nule, ve string2 kterém se má začít porovnávat.
- options
- CompareOptions
Hodnota, která definuje, jak string1 a string2 má být porovnána.
optionsje buď hodnota Ordinalvýčtu , nebo bitová kombinace jedné nebo více následujících hodnot: IgnoreCase, IgnoreSymbols, , IgnoreWidthIgnoreNonSpace, , IgnoreKanaTypeNumericOrderinga StringSort.
Návraty
32bitové celé číslo se znaménkem označující lexikální vztah mezi těmito dvěma porovnávacími znaménkami.
| Hodnota | Podmínka |
|---|---|
| Nula | Oba řetězce jsou stejné. |
| menší než nula | Zadaný oddíl string1 je menší než zadaný oddíl .string2
|
| větší než nula | Zadaný oddíl string1 je větší než zadaný oddíl .string2
|
Výjimky
offset1 nebo offset2 je menší než nula.
nebo
offset1 je větší než nebo roven počtu znaků v string1argumentu .
nebo
offset2 je větší než nebo roven počtu znaků v string2argumentu .
options obsahuje neplatnou CompareOptions hodnotu.
Příklady
Následující příklad porovnává části dvou řetězců pomocí různých CompareOptions nastavení.
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
Poznámky
Pokud rozhodnutí o zabezpečení závisí na porovnání řetězců nebo změně případu, měli byste pomocí InvariantCulture vlastnosti zajistit, aby chování bylo konzistentní bez ohledu na nastavení jazykové verze operačního systému.
Poznámka:
Pokud je to možné, měli byste volat metody porovnání řetězců, které mají parametr typu CompareOptions k určení druhu očekávaného porovnání. Obecně platí, že pro porovnávání řetězců zobrazených v uživatelském rozhraní použijte jazykové volby (s využitím aktuální kultury) a zadejte Ordinal nebo OrdinalIgnoreCase pro bezpečnostní porovnání.
Poznámky pro volající
Znakové sady obsahují ignorovatelné znaky, což jsou znaky, které se při provádění jazykového nebo kulturně citlivého porovnání nerozlišují. Metoda Compare(String, Int32, String, Int32, CompareOptions) tyto znaky při porovnávání citlivé na jazykovou verzi nepovažuje za takové znaky. Pokud chcete rozpoznat ignorovatelné znaky ve srovnání, zadejte hodnotu Ordinal parametru options nebo OrdinalIgnoreCase hodnotu.
Viz také
Platí pro
Compare(String, Int32, Int32, String, Int32, Int32)
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
Porovná část jednoho řetězce s oddílem jiného řetězce.
public:
virtual int Compare(System::String ^ string1, int offset1, int length1, System::String ^ string2, int offset2, int length2);
public:
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);
public int Compare(string? string1, int offset1, int length1, 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
member 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
Public Function Compare (string1 As String, offset1 As Integer, length1 As Integer, string2 As String, offset2 As Integer, length2 As Integer) As Integer
Parametry
- string1
- String
První řetězec určený k porovnání
- offset1
- Int32
Index znaku založený na nule, ve string1 kterém se má začít porovnávat.
- length1
- Int32
Počet po sobě jdoucích znaků, které string1 chcete porovnat.
- string2
- String
Druhý řetězec určený k porovnání
- offset2
- Int32
Index znaku založený na nule, ve string2 kterém se má začít porovnávat.
- length2
- Int32
Počet po sobě jdoucích znaků, které string2 chcete porovnat.
Návraty
32bitové celé číslo se znaménkem označující lexikální vztah mezi těmito dvěma porovnávacími znaménkami.
| Hodnota | Podmínka |
|---|---|
| Nula | Oba řetězce jsou stejné. |
| menší než nula | Zadaný oddíl string1 je menší než zadaný oddíl .string2
|
| větší než nula | Zadaný oddíl string1 je větší než zadaný oddíl .string2
|
Výjimky
offset1
length1 nebo je offset2length2 menší než nula.
nebo
offset1 je větší než nebo roven počtu znaků v string1argumentu .
nebo
offset2 je větší než nebo roven počtu znaků v string2argumentu .
nebo
length1je větší než počet znaků od offset1 konce .string1
nebo
length2je větší než počet znaků od offset2 konce .string2
Příklady
Následující příklad porovnává části dvou řetězců pomocí různých CompareInfo objektů:
CompareInfo objekt přidružený k jazykové verzi španělštiny (Španělsko) s mezinárodním řazením
CompareInfo objekt přidružený k jazykové verzi španělštiny (Španělsko) s tradičním řazením
CompareInfo objekt přidružený k objektu 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
Poznámky
Pokud rozhodnutí o zabezpečení závisí na porovnání řetězců nebo změně případu, měli byste pomocí InvariantCulture vlastnosti zajistit, aby chování bylo konzistentní bez ohledu na nastavení jazykové verze operačního systému.
Poznámka:
Pokud je to možné, měli byste použít metody porovnání řetězců, které mají parametr typu CompareOptions k určení druhu očekávaného porovnání. Obecně platí, že pro porovnávání řetězců zobrazených v uživatelském rozhraní použijte jazykové volby (s využitím aktuální kultury) a zadejte Ordinal nebo OrdinalIgnoreCase pro bezpečnostní porovnání.
Poznámky pro volající
Znakové sady obsahují ignorovatelné znaky. Metoda Compare(String, Int32, Int32, String, Int32, Int32) tyto znaky nebere v úvahu při provádění jazykového nebo jazykového porovnání. Chcete-li rozpoznat ignorovatelné znaky ve srovnání, zavolejte metodu Compare(String, Int32, Int32, String, Int32, Int32, CompareOptions) a zadejte hodnotu Ordinal nebo OrdinalIgnoreCase parametr.options
Platí pro
Compare(String, Int32, Int32, String, Int32, Int32, CompareOptions)
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
- Zdroj:
- CompareInfo.cs
Porovná oddíl jednoho řetězce s oddílem jiného řetězce pomocí zadané CompareOptions hodnoty.
public:
virtual int Compare(System::String ^ string1, int offset1, int length1, System::String ^ string2, int offset2, int length2, System::Globalization::CompareOptions options);
public:
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);
public int Compare(string? string1, int offset1, int length1, 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
member 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
Public 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
Parametry
- string1
- String
První řetězec určený k porovnání
- offset1
- Int32
Index znaku založený na nule, ve string1 kterém se má začít porovnávat.
- length1
- Int32
Počet po sobě jdoucích znaků, které string1 chcete porovnat.
- string2
- String
Druhý řetězec určený k porovnání
- offset2
- Int32
Index znaku založený na nule, ve string2 kterém se má začít porovnávat.
- length2
- Int32
Počet po sobě jdoucích znaků, které string2 chcete porovnat.
- options
- CompareOptions
Hodnota, která definuje, jak string1 a string2 má být porovnána.
optionsje buď hodnota Ordinalvýčtu , nebo bitová kombinace jedné nebo více následujících hodnot: IgnoreCase, IgnoreSymbols, , IgnoreWidthIgnoreNonSpace, , IgnoreKanaTypeNumericOrderinga StringSort.
Návraty
32bitové celé číslo se znaménkem označující lexikální vztah mezi těmito dvěma porovnávacími znaménkami.
| Hodnota | Podmínka |
|---|---|
| Nula | Oba řetězce jsou stejné. |
| menší než nula | Zadaný oddíl string1 je menší než zadaný oddíl .string2
|
| větší než nula | Zadaný oddíl string1 je větší než zadaný oddíl .string2
|
Výjimky
offset1
length1 nebo je offset2length2 menší než nula.
nebo
offset1 je větší než nebo roven počtu znaků v string1argumentu .
nebo
offset2 je větší než nebo roven počtu znaků v string2argumentu .
nebo
length1je větší než počet znaků od offset1 konce .string1
nebo
length2je větší než počet znaků od offset2 konce .string2
options obsahuje neplatnou CompareOptions hodnotu.
Příklady
Následující příklad porovnává části dvou řetězců pomocí různých CompareOptions nastavení.
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
Poznámky
Pokud rozhodnutí o zabezpečení závisí na porovnání řetězců nebo změně případu, měli byste pomocí InvariantCulture vlastnosti zajistit, aby chování bylo konzistentní bez ohledu na nastavení jazykové verze operačního systému.
Poznámka:
Pokud je to možné, měli byste volat metody porovnání řetězců, které mají parametr typu CompareOptions k určení druhu očekávaného porovnání. Obecně platí, že pro porovnávání řetězců zobrazených v uživatelském rozhraní použijte jazykové volby (s využitím aktuální kultury) a zadejte Ordinal nebo OrdinalIgnoreCase pro bezpečnostní porovnání.
Poznámky pro volající
Znakové sady obsahují ignorovatelné znaky. Metoda Compare(String, Int32, Int32, String, Int32, Int32, CompareOptions) tyto znaky nebere v úvahu při provádění porovnání citlivé na jazykovou verzi. Pokud chcete rozpoznat ignorovatelné znaky ve srovnání, zadejte hodnotu Ordinal parametru options nebo OrdinalIgnoreCase hodnotu.