CompareInfo.Compare Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İki dizeyi karşılaştırır.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| Compare(String, String) |
İki dizeyi karşılaştırır. |
| Compare(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions) |
İki salt okunur karakter aralığını karşılaştırır. |
| Compare(String, String, CompareOptions) |
Belirtilen CompareOptions değeri kullanarak iki dizeyi karşılaştırır. |
| Compare(String, Int32, String, Int32) |
Dizenin bitiş bölümünü başka bir dizenin bitiş bölümüyle karşılaştırır. |
| Compare(String, Int32, String, Int32, CompareOptions) |
Belirtilen CompareOptions değeri kullanarak bir dizenin bitiş bölümünü başka bir dizenin bitiş bölümüyle karşılaştırır. |
| Compare(String, Int32, Int32, String, Int32, Int32) |
Bir dizenin bölümünü başka bir dizenin bölümüyle karşılaştırır. |
| Compare(String, Int32, Int32, String, Int32, Int32, CompareOptions) |
Belirtilen CompareOptions değeri kullanarak bir dizenin bölümünü başka bir dizenin bölümüyle karşılaştırır. |
Compare(String, String)
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
İki dizeyi karşılaştırır.
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
Parametreler
- string1
- String
Karşılaştırılacak ilk dize.
- string2
- String
Karşılaştırılacak ikinci dize.
Döndürülenler
İki karşılaştırma arasındaki sözcüksel ilişkiyi gösteren 32 bit imzalı tamsayı.
| Değer | Koşul |
|---|---|
| Sıfır | İki dize eşittir. |
| sıfırdan küçük |
string1 değerinden string2küçüktür.
|
| sıfırdan büyük |
string1 değerinden string2büyüktür.
|
Örnekler
Aşağıdaki örnek, farklı CompareInfo nesneleri kullanarak iki dizenin bölümlerini karşılaştırır:
- CompareInfo uluslararası sıralama ile İspanyolca (İspanya) kültürüyle ilişkilendirilmiş nesne
- CompareInfo geleneksel sıralama ile İspanyolca (İspanya) kültürüyle ilişkilendirilmiş nesne
- CompareInfo ile ilişkilendirilmiş nesne 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
Aşağıdaki örnekte yönteminin çağrılması gösterilmektedir Compare .
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
Açıklamalar
Varsayılan olarak, karşılaştırma kullanılarak CompareOptions.Nonegerçekleştirilir. Bir güvenlik kararı bir dize karşılaştırmasına veya büyük/küçük harf değişikliğine bağlıysa, işletim sisteminin kültür ayarlarından bağımsız olarak davranışın tutarlı olduğundan emin olmak için özelliğini kullanmanız InvariantCulture gerekir.
Uyarı
Mümkün olduğunda, beklenen karşılaştırma türünü belirtmek için türünde CompareOptions bir parametresi olan dize karşılaştırma yöntemlerini çağırmanız gerekir. Genel bir kural olarak, kullanıcı arabiriminde görüntülenen dizeleri karşılaştırırken dilsel seçenekleri (geçerli kültürü kullanarak) kullanın ve güvenlik karşılaştırmaları için Ordinal veya OrdinalIgnoreCase belirtin.
Arayanlara Notlar
Karakter kümeleri, dilsel veya kültürel hassasiyetle karşılaştırma yapılırken dikkate alınmayan önemsiz karakterler içerir. yöntemi, Compare(String, String) kültüre duyarlı bir karşılaştırma gerçekleştirirken bu tür karakterleri dikkate almaz. Örneğin, "hayvan"ın "ani-mal" (yumuşak kısa çizgi veya U+00AD kullanarak) ile kültüre duyarlı karşılaştırması, aşağıdaki örnekte gösterildiği gibi iki dizenin eşdeğer olduğunu gösterir.
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
Dize karşılaştırmasında yoksayılabilir karakterleri tanımak için yöntemini çağırın Compare(String, String, CompareOptions) ve veya OrdinalIgnoreCase parametresi için options bir değer Ordinal sağlayın.
Şunlara uygulanır
Compare(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions)
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
İki salt okunur karakter aralığını karşılaştırır.
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
Parametreler
- string1
- ReadOnlySpan<Char>
Karşılaştırılacak karakterlerin ilk salt okunur yayılma alanı.
- string2
- ReadOnlySpan<Char>
Karşılaştırılacak karakterlerin ikinci salt okunur aralığı.
- options
- CompareOptions
Karşılaştırma sırasında kullanılacak sabit listesi değerlerinin CompareOptions isteğe bağlı bir bileşimi. Varsayılan değer None değeridir.
Döndürülenler
ve string2 eşitse string1 sıfır; önce string2sıralanırsa string1 negatif bir değer veya sonra string2sıralanırsa string1 pozitif bir değer.
Özel durumlar
options desteklenmeyen bir bayrak bileşimi içerir.
Şunlara uygulanır
Compare(String, String, CompareOptions)
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
Belirtilen CompareOptions değeri kullanarak iki dizeyi karşılaştırır.
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
Parametreler
- string1
- String
Karşılaştırılacak ilk dize.
- string2
- String
Karşılaştırılacak ikinci dize.
- options
- CompareOptions
Nasıl string1 ve string2 karşılaştırılması gerektiğini tanımlayan bir değer.
options sabit listesi değeridir Ordinalveya aşağıdaki değerlerden birinin veya daha fazlasının bit düzeyinde birleşimidir: IgnoreCase, IgnoreSymbols, IgnoreNonSpace, IgnoreWidth, IgnoreKanaType, , NumericOrderingve StringSort.
Döndürülenler
İki karşılaştırma arasındaki sözcüksel ilişkiyi gösteren 32 bit imzalı tamsayı.
| Değer | Koşul |
|---|---|
| Sıfır | İki dize eşittir. |
| sıfırdan küçük |
string1 değerinden string2küçüktür.
|
| sıfırdan büyük |
string1 değerinden string2büyüktür.
|
Özel durumlar
options geçersiz CompareOptions bir değer içeriyor.
Örnekler
Aşağıdaki örnek, farklı CompareOptions ayarları kullanarak iki dizeyi karşılaştırır.
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
Aşağıdaki örnekte yönteminin çağrılması gösterilmektedir Compare .
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
Açıklamalar
Bir güvenlik kararı bir dize karşılaştırmasına veya büyük/küçük harf değişikliğine bağlıysa, işletim sisteminin kültür ayarlarından bağımsız olarak davranışın tutarlı olduğundan emin olmak için özelliğini kullanmanız InvariantCulture gerekir.
Uyarı
Mümkün olduğunda, beklenen karşılaştırma türünü belirtmek için türünde CompareOptions bir parametresi olan dize karşılaştırma yöntemlerini çağırmanız gerekir. Genel bir kural olarak, kullanıcı arabiriminde görüntülenen dizeleri karşılaştırırken dilsel seçenekleri (geçerli kültürü kullanarak) kullanın ve güvenlik karşılaştırmaları için Ordinal veya OrdinalIgnoreCase belirtin.
Arayanlara Notlar
Karakter kümeleri, dilsel veya kültürel hassasiyetle karşılaştırma yapılırken dikkate alınmayan önemsiz karakterler içerir. yöntemi, Compare(String, String, CompareOptions) kültüre duyarlı bir karşılaştırma gerçekleştirirken bu tür karakterleri dikkate almaz. Karşılaştırmanızda yoksayılabilir karakterleri tanımak için veya parametresi için options bir değer OrdinalOrdinalIgnoreCase sağlayın.
Ayrıca bkz.
Şunlara uygulanır
Compare(String, Int32, String, Int32)
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
Dizenin bitiş bölümünü başka bir dizenin bitiş bölümüyle karşılaştırır.
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
Parametreler
- string1
- String
Karşılaştırılacak ilk dize.
- offset1
- Int32
Karşılaştırmaya başlanması gereken karakterin string1 sıfır tabanlı dizini.
- string2
- String
Karşılaştırılacak ikinci dize.
- offset2
- Int32
Karşılaştırmaya başlanması gereken karakterin string2 sıfır tabanlı dizini.
Döndürülenler
İki karşılaştırma arasındaki sözcüksel ilişkiyi gösteren 32 bit imzalı tamsayı.
| Değer | Koşul |
|---|---|
| Sıfır | İki dize eşittir. |
| sıfırdan küçük | belirtilen bölümü string1 , öğesinin belirtilen bölümünden string2küçüktür.
|
| sıfırdan büyük | belirtilen bölümü string1 , öğesinin belirtilen bölümünden string2büyüktür.
|
Özel durumlar
offset1 veya offset2 sıfırdan küçüktür.
-veya-
offset1 içindeki karakter string1sayısından büyük veya buna eşittir.
-veya-
offset2 içindeki karakter string2sayısından büyük veya buna eşittir.
Örnekler
Aşağıdaki örnek, farklı CompareInfo nesneleri kullanarak iki dizenin bölümlerini karşılaştırır:
CompareInfo uluslararası sıralama ile İspanyolca (İspanya) kültürüyle ilişkilendirilmiş nesne
CompareInfo geleneksel sıralama ile İspanyolca (İspanya) kültürüyle ilişkilendirilmiş nesne
CompareInfo ile ilişkilendirilmiş nesne 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
Açıklamalar
Bir güvenlik kararı bir dize karşılaştırmasına veya büyük/küçük harf değişikliğine bağlıysa, işletim sisteminin kültür ayarlarından bağımsız olarak davranışın tutarlı olduğundan emin olmak için özelliğini kullanmanız InvariantCulture gerekir.
Uyarı
Mümkün olduğunda, beklenen karşılaştırma türünü belirtmek için türünde CompareOptions bir parametresi olan dize karşılaştırma yöntemlerini çağırmanız gerekir. Genel bir kural olarak, kullanıcı arabiriminde görüntülenen dizeleri karşılaştırırken dilsel seçenekleri (geçerli kültürü kullanarak) kullanın ve güvenlik karşılaştırmaları için Ordinal veya OrdinalIgnoreCase belirtin.
Arayanlara Notlar
Karakter kümeleri yoksayılabilir karakterler içerir.
Compare(String, Int32, String, Int32) yöntemi, dilsel veya kültüre duyarlı bir karşılaştırma gerçekleştirirken bu karakterleri dikkate almaz. Karşılaştırmanızdaki yoksayılabilir karakterleri tanımak için yöntemini çağırın Compare(String, Int32, String, Int32, CompareOptions) ve parametresi için options veya OrdinalIgnoreCase değerini Ordinal sağlayın.
Şunlara uygulanır
Compare(String, Int32, String, Int32, CompareOptions)
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
Belirtilen CompareOptions değeri kullanarak bir dizenin bitiş bölümünü başka bir dizenin bitiş bölümüyle karşılaştırır.
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
Parametreler
- string1
- String
Karşılaştırılacak ilk dize.
- offset1
- Int32
Karşılaştırmaya başlanması gereken karakterin string1 sıfır tabanlı dizini.
- string2
- String
Karşılaştırılacak ikinci dize.
- offset2
- Int32
Karşılaştırmaya başlanması gereken karakterin string2 sıfır tabanlı dizini.
- options
- CompareOptions
Nasıl string1 ve string2 karşılaştırılması gerektiğini tanımlayan bir değer.
options sabit listesi değeridir Ordinalveya aşağıdaki değerlerden birinin veya daha fazlasının bit düzeyinde birleşimidir: IgnoreCase, IgnoreSymbols, IgnoreNonSpace, IgnoreWidth, IgnoreKanaType, , NumericOrderingve StringSort.
Döndürülenler
İki karşılaştırma arasındaki sözcüksel ilişkiyi gösteren 32 bit imzalı tamsayı.
| Değer | Koşul |
|---|---|
| Sıfır | İki dize eşittir. |
| sıfırdan küçük | belirtilen bölümü string1 , öğesinin belirtilen bölümünden string2küçüktür.
|
| sıfırdan büyük | belirtilen bölümü string1 , öğesinin belirtilen bölümünden string2büyüktür.
|
Özel durumlar
offset1 veya offset2 sıfırdan küçüktür.
-veya-
offset1 içindeki karakter string1sayısından büyük veya buna eşittir.
-veya-
offset2 içindeki karakter string2sayısından büyük veya buna eşittir.
options geçersiz CompareOptions bir değer içeriyor.
Örnekler
Aşağıdaki örnek, farklı CompareOptions ayarlar kullanarak iki dizenin bölümlerini karşılaştırır.
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
Açıklamalar
Bir güvenlik kararı bir dize karşılaştırmasına veya büyük/küçük harf değişikliğine bağlıysa, işletim sisteminin kültür ayarlarından bağımsız olarak davranışın tutarlı olduğundan emin olmak için özelliğini kullanmanız InvariantCulture gerekir.
Uyarı
Mümkün olduğunda, beklenen karşılaştırma türünü belirtmek için türünde CompareOptions bir parametresi olan dize karşılaştırma yöntemlerini çağırmanız gerekir. Genel bir kural olarak, kullanıcı arabiriminde görüntülenen dizeleri karşılaştırırken dilsel seçenekleri (geçerli kültürü kullanarak) kullanın ve güvenlik karşılaştırmaları için Ordinal veya OrdinalIgnoreCase belirtin.
Arayanlara Notlar
Karakter kümeleri, dilsel veya kültürel hassasiyetle karşılaştırma yapılırken dikkate alınmayan önemsiz karakterler içerir. yöntemi, Compare(String, Int32, String, Int32, CompareOptions) kültüre duyarlı bir karşılaştırma gerçekleştirirken bu tür karakterleri dikkate almaz. Karşılaştırmanızda yoksayılabilir karakterleri tanımak için veya parametresi için options bir değer OrdinalOrdinalIgnoreCase sağlayın.
Ayrıca bkz.
Şunlara uygulanır
Compare(String, Int32, Int32, String, Int32, Int32)
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
Bir dizenin bölümünü başka bir dizenin bölümüyle karşılaştırır.
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
Parametreler
- string1
- String
Karşılaştırılacak ilk dize.
- offset1
- Int32
Karşılaştırmaya başlanması gereken karakterin string1 sıfır tabanlı dizini.
- length1
- Int32
karşılaştıracak ardışık karakter string1 sayısı.
- string2
- String
Karşılaştırılacak ikinci dize.
- offset2
- Int32
Karşılaştırmaya başlanması gereken karakterin string2 sıfır tabanlı dizini.
- length2
- Int32
karşılaştıracak ardışık karakter string2 sayısı.
Döndürülenler
İki karşılaştırma arasındaki sözcüksel ilişkiyi gösteren 32 bit imzalı tamsayı.
| Değer | Koşul |
|---|---|
| Sıfır | İki dize eşittir. |
| sıfırdan küçük | belirtilen bölümü string1 , öğesinin belirtilen bölümünden string2küçüktür.
|
| sıfırdan büyük | belirtilen bölümü string1 , öğesinin belirtilen bölümünden string2büyüktür.
|
Özel durumlar
offset1 veya length1 veya offset2length2 sıfırdan küçüktür.
-veya-
offset1 içindeki karakter string1sayısından büyük veya buna eşittir.
-veya-
offset2 içindeki karakter string2sayısından büyük veya buna eşittir.
-veya-
length1 , 'den offset1 sonuna kadar olan karakter sayısından string1büyüktür.
-veya-
length2 , 'den offset2 sonuna kadar olan karakter sayısından string2büyüktür.
Örnekler
Aşağıdaki örnek, farklı CompareInfo nesneleri kullanarak iki dizenin bölümlerini karşılaştırır:
CompareInfo uluslararası sıralama ile İspanyolca (İspanya) kültürüyle ilişkilendirilmiş nesne
CompareInfo geleneksel sıralama ile İspanyolca (İspanya) kültürüyle ilişkilendirilmiş nesne
CompareInfo ile ilişkilendirilmiş nesne 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
Açıklamalar
Bir güvenlik kararı bir dize karşılaştırmasına veya büyük/küçük harf değişikliğine bağlıysa, işletim sisteminin kültür ayarlarından bağımsız olarak davranışın tutarlı olduğundan emin olmak için özelliğini kullanmanız InvariantCulture gerekir.
Uyarı
Mümkün olduğunda, beklenen karşılaştırma türünü belirtmek için türünde CompareOptions bir parametresi olan dize karşılaştırma yöntemlerini kullanmanız gerekir. Genel bir kural olarak, kullanıcı arabiriminde görüntülenen dizeleri karşılaştırırken dilsel seçenekleri (geçerli kültürü kullanarak) kullanın ve güvenlik karşılaştırmaları için Ordinal veya OrdinalIgnoreCase belirtin.
Arayanlara Notlar
Karakter kümeleri yoksayılabilir karakterler içerir.
Compare(String, Int32, Int32, String, Int32, Int32) yöntemi, dilsel veya kültüre duyarlı bir karşılaştırma gerçekleştirirken bu karakterleri dikkate almaz. Karşılaştırmanızdaki yoksayılabilir karakterleri tanımak için yöntemini çağırın Compare(String, Int32, Int32, String, Int32, Int32, CompareOptions) ve parametresi için options veya OrdinalIgnoreCase değerini Ordinal sağlayın.
Şunlara uygulanır
Compare(String, Int32, Int32, String, Int32, Int32, CompareOptions)
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
- Kaynak:
- CompareInfo.cs
Belirtilen CompareOptions değeri kullanarak bir dizenin bölümünü başka bir dizenin bölümüyle karşılaştırır.
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
Parametreler
- string1
- String
Karşılaştırılacak ilk dize.
- offset1
- Int32
Karşılaştırmaya başlanması gereken karakterin string1 sıfır tabanlı dizini.
- length1
- Int32
karşılaştıracak ardışık karakter string1 sayısı.
- string2
- String
Karşılaştırılacak ikinci dize.
- offset2
- Int32
Karşılaştırmaya başlanması gereken karakterin string2 sıfır tabanlı dizini.
- length2
- Int32
karşılaştıracak ardışık karakter string2 sayısı.
- options
- CompareOptions
Nasıl string1 ve string2 karşılaştırılması gerektiğini tanımlayan bir değer.
options sabit listesi değeridir Ordinalveya aşağıdaki değerlerden birinin veya daha fazlasının bit düzeyinde birleşimidir: IgnoreCase, IgnoreSymbols, IgnoreNonSpace, IgnoreWidth, IgnoreKanaType, , NumericOrderingve StringSort.
Döndürülenler
İki karşılaştırma arasındaki sözcüksel ilişkiyi gösteren 32 bit imzalı tamsayı.
| Değer | Koşul |
|---|---|
| Sıfır | İki dize eşittir. |
| sıfırdan küçük | belirtilen bölümü string1 , öğesinin belirtilen bölümünden string2küçüktür.
|
| sıfırdan büyük | belirtilen bölümü string1 , öğesinin belirtilen bölümünden string2büyüktür.
|
Özel durumlar
offset1 veya length1 veya offset2length2 sıfırdan küçüktür.
-veya-
offset1 içindeki karakter string1sayısından büyük veya buna eşittir.
-veya-
offset2 içindeki karakter string2sayısından büyük veya buna eşittir.
-veya-
length1 , 'den offset1 sonuna kadar olan karakter sayısından string1büyüktür.
-veya-
length2 , 'den offset2 sonuna kadar olan karakter sayısından string2büyüktür.
options geçersiz CompareOptions bir değer içeriyor.
Örnekler
Aşağıdaki örnek, farklı CompareOptions ayarlar kullanarak iki dizenin bölümlerini karşılaştırır.
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
Açıklamalar
Bir güvenlik kararı bir dize karşılaştırmasına veya büyük/küçük harf değişikliğine bağlıysa, işletim sisteminin kültür ayarlarından bağımsız olarak davranışın tutarlı olduğundan emin olmak için özelliğini kullanmanız InvariantCulture gerekir.
Uyarı
Mümkün olduğunda, beklenen karşılaştırma türünü belirtmek için türünde CompareOptions bir parametresi olan dize karşılaştırma yöntemlerini çağırmanız gerekir. Genel bir kural olarak, kullanıcı arabiriminde görüntülenen dizeleri karşılaştırırken dilsel seçenekleri (geçerli kültürü kullanarak) kullanın ve güvenlik karşılaştırmaları için Ordinal veya OrdinalIgnoreCase belirtin.
Arayanlara Notlar
Karakter kümeleri yoksayılabilir karakterler içerir.
Compare(String, Int32, Int32, String, Int32, Int32, CompareOptions) yöntemi, kültüre duyarlı bir karşılaştırma gerçekleştirirken bu karakterleri dikkate almaz. Karşılaştırmanızda yoksayılabilir karakterleri tanımak için veya parametresi için options bir değer OrdinalOrdinalIgnoreCase sağlayın.