Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

CompareInfo.Compare-Methode: (String, String, CompareOptions)

 

Veröffentlicht: Oktober 2016

Vergleicht mithilfe des angegebenen CompareOptions-Werts zwei Zeichenfolgen.

Namespace:   System.Globalization
Assembly:  mscorlib (in mscorlib.dll)

public virtual int Compare(
	string string1,
	string string2,
	CompareOptions options
)

Parameter

string1
Type: System.String

Die erste zu vergleichende Zeichenfolge.

string2
Type: System.String

Die zweite zu vergleichende Zeichenfolge.

options
Type: System.Globalization.CompareOptions

Ein Wert, der definiert, wie string1 und string2 verglichen werden soll. options ist entweder der Enumerationswert Ordinal, oder eine bitweise Kombination eines oder mehrerer der folgenden Werte: IgnoreCase, IgnoreSymbols, IgnoreNonSpace, IgnoreWidth, IgnoreKanaType, und StringSort.

Rückgabewert

Type: System.Int32

Eine 32-Bit-Ganzzahl mit Vorzeichen, die die lexikalische Beziehung der beiden verglichenen Elemente angibt.

Wert

Bedingung

0 (Null)

Die beiden Zeichenfolgen sind gleich.

Kleiner als 0 (Null)

string1 ist kleiner als string2.

Größer als 0 (Null)

string1 ist größer als string2.

Exception Condition
ArgumentException

options enthält einen ungültigen CompareOptions Wert.

Wenn Sie eine Entscheidung bezüglich der Sicherheit von einem Zeichenfolgenvergleich oder einer Änderung der Groß-abhängig ist, verwenden Sie die InvariantCulture Eigenschaft, um sicherzustellen, dass das Verhalten unabhängig von den Einstellungen der Kultur des Betriebssystems konsistent ist.

System_CAPS_noteHinweis

Wenn möglich, Sie sollten Zeichenfolge Vergleichsmethoden aufrufen, die über einen Parameter vom Typ CompareOptions um den erwarteten Vergleich anzugeben. Als allgemeine Regel verwenden linguistische (mit der aktuellen Kultur) Optionen zum Vergleichen von Zeichenfolgen, die in der Benutzeroberfläche angezeigt, und geben Sie Ordinal oder OrdinalIgnoreCase für Vergleiche von Sicherheit.

Hinweise für Aufrufer:

Zeichensätze enthalten ignorierbare Zeichen, d. h. Zeichen, die bei der Durchführung eines linguistischen oder kulturabhängigen Vergleichs nicht berücksichtigt werden. Die Compare(String, String, CompareOptions) Methode berücksichtigt nicht solche Zeichen, wenn ein kulturabhängiger Vergleich ausgeführt. Um den Vergleich ignoriert Zeichen zu erkennen, geben Sie den Wert CompareOptions.Ordinal oder CompareOptions.OrdinalIgnoreCase für die options Parameter.

Im folgenden Beispiel werden zwei Zeichenfolgen mithilfe der verschiedenen CompareOptions Einstellungen.

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

*/

Das folgende Beispiel veranschaulicht den Aufruf der Compare Methode.

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

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: