Sdílet prostřednictvím


CompareInfo.Compare Metoda

Definice

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.

Viz také

Platí pro