CompareInfo-Klasse
Implementiert eine Reihe von Methoden für kulturabhängige Zeichenfolgenvergleiche.
Namespace: System.Globalization
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Class CompareInfo
Implements IDeserializationCallback
'Usage
Dim instance As CompareInfo
[SerializableAttribute]
[ComVisibleAttribute(true)]
public class CompareInfo : IDeserializationCallback
[SerializableAttribute]
[ComVisibleAttribute(true)]
public ref class CompareInfo : IDeserializationCallback
/** @attribute SerializableAttribute() */
/** @attribute ComVisibleAttribute(true) */
public class CompareInfo implements IDeserializationCallback
SerializableAttribute
ComVisibleAttribute(true)
public class CompareInfo implements IDeserializationCallback
Hinweise
Die CultureInfo-Klasse enthält die CompareInfo-Eigenschaft, die eine Instanz dieser Klasse ist. String.Compare verwendet diese Informationen in CultureInfo.CompareInfo, um Zeichenfolgen zu vergleichen.
Im Unterschied zu den meisten anderen Klassen stellt CompareInfo anstelle öffentlicher Konstruktoren die GetCompareInfo-Methode bereit, um Zugriff mit spätem Binden zu ermöglichen.
Zum Erstellen einer CompareInfo für eine beliebige Kultur verwenden Sie die CultureInfo.CompareInfo-Eigenschaft oder die GetCompareInfo-Methode.
Ignorierte Suchwerte
Vergleichsvorgänge, z. B. die IndexOf-Methode oder die LastIndexOf-Methode, können zu unerwarteten Ergebnissen führen, wenn der zu suchende Wert ignoriert wird. Der Suchwert wird ignoriert, wenn es sich um eine leere Zeichenfolge ("") handelt oder wenn er ein Zeichen bzw. eine Zeichenfolge ist, dessen Codepunkt bzw. deren Codepunkte aufgrund von Vergleichsoptionen nicht berücksichtigt werden oder keine linguistische Bedeutung aufweisen. Wenn der Suchwert für die IndexOf-Methode z. B. eine leere Zeichenfolge ist, ist der Rückgabewert 0 (null).
Sicherheitsüberlegungen
Wenn eine Sicherheitsentscheidung von einem Zeichenfolgenvergleich oder einer Änderung der Groß-/Kleinschreibung abhängt, stellen Sie mithilfe der InvariantCulture sicher, dass das Verhalten ungeachtet der Kultureinstellungen des Systems einheitlich ist.
Beispiel
Im folgenden Codebeispiel wird veranschaulicht, wie das einem CultureInfo-Objekt zugeordnete CompareInfo-Objekt Zeichenfolgenvergleiche beeinflusst.
Imports System
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 'Main
End Class 'App
' 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
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
using namespace System;
using namespace System::Text;
using namespace System::Globalization;
int main()
{
array<String^>^ sign = gcnew array<String^> { "<", "=", ">" };
// The code below demonstrates how strings compare
// differently for different cultures.
String^ s1 = "Coté";
String^ s2 = "coté";
String^ s3 = "côte";
// Set sort order of strings for French in France.
CompareInfo^ ci = (gcnew CultureInfo("fr-FR"))->CompareInfo;
Console::WriteLine(L"The LCID for {0} is {1}.", ci->Name, ci->LCID);
// Display the result using fr-FR Compare of Coté = coté.
Console::WriteLine(L"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(L"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 = (gcnew CultureInfo("ja-JP"))->CompareInfo;
Console::WriteLine(L"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
Vererbungshierarchie
System.Object
System.Globalization.CompareInfo
Threadsicherheit
Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0, 1.0