Windows Dev Center

Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
Informationen
Das angeforderte Thema wird unten angezeigt. Es ist jedoch nicht in dieser Bibliothek vorhanden.

String.Compare-Methode (String, Int32, String, Int32, Int32, CultureInfo, CompareOptions)

Vergleicht Teilzeichenfolgen von zwei angegebenen String-Objekten mit den festgelegten Vergleichsoptionen und kulturspezifischen Informationen, die den Vergleich beeinflussen, und gibt eine ganze Zahl zurück, die die Beziehung der beiden Teilzeichenfolgen zueinander in der Sortierreihenfolge angibt.

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

public static int Compare(
	string strA,
	int indexA,
	string strB,
	int indexB,
	int length,
	CultureInfo culture,
	CompareOptions options
)

Parameter

strA
Typ: System.String
Die erste im Vergleich zu verwendende Zeichenfolge.
indexA
Typ: System.Int32
Die Anfangsposition der Teilzeichenfolge innerhalb des strA-Parameters.
strB
Typ: System.String
Die zweite im Vergleich zu verwendende Zeichenfolge.
indexB
Typ: System.Int32
Die Anfangsposition der Teilzeichenfolge innerhalb des strB-Parameters.
length
Typ: System.Int32
Die maximale Anzahl der zu vergleichenden Zeichen der Teilzeichenfolgen.
culture
Typ: System.Globalization.CultureInfo
Ein Objekt, das kulturspezifische Vergleichsinformationen angibt.
options
Typ: System.Globalization.CompareOptions
Die beim Ausführen des Vergleichs zu verwendenden Optionen (z. B. Ignorieren von Groß- und Kleinschreibung oder Symbolen).

Rückgabewert

Typ: System.Int32
Eine ganze Zahl, die die lexikalische Beziehung zwischen den beiden Teilzeichenfolgen angibt, wie in der folgenden Tabelle veranschaulicht.

Wert

Condition

Kleiner als 0

Die Teilzeichenfolge in strA ist kleiner als die Teilzeichenfolge in strB.

0

Die Teilzeichenfolgen sind gleich oder length ist 0 (null).

Größer als 0 (null)

Die Teilzeichenfolge in strA ist größer als die Teilzeichenfolge in strB.

AusnahmeBedingung
ArgumentException

options ist kein CompareOptions-Wert.

ArgumentOutOfRangeException

indexA ist größer als strA.Length.

- oder -

indexB ist größer als strB.Length.

- oder -

indexA, indexB oder length ist negativ.

- oder -

strA oder strB ist null, und length ist größer als 0 (null).

ArgumentNullException

culture ist null.

Die zu vergleichenden Teilzeichenfolgen beginnen in strA bei Position indexA und in strB bei Position indexB. Die Länge der ersten Teilzeichenfolge ist die Länge von strA minus indexA. Die Länge der zweiten Teilzeichenfolge ist die Länge von strB minus indexB.

Die Anzahl der zu vergleichenden Zeichen ist kleiner als die Länge der beiden Teilzeichenfolgen und length. Der indexA-Parameter, der indexB-Parameter und der length-Parameter dürfen nicht negativ sein.

Beim Vergleich werden mit dem culture-Parameter kulturspezifische Informationen abgerufen, z. B. Regeln zur Groß- und Kleinschreibung und die alphabetische Reihenfolge einzelner Zeichen. Durch eine bestimmte Kultur kann z. B. festlegt sein, dass gewisse Kombinationen von Zeichen als ein einzelnes Zeichen behandelt werden, dass Zeichen in Groß- und Kleinschreibung auf eine bestimmte Weise miteinander verglichen werden oder dass die Sortierreihenfolge eines Zeichens vom vorangehenden bzw. nachfolgenden Zeichen abhängt.

WarnhinweisVorsicht

Die Compare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions)-Methode ist hauptsächlich für Sortierungsvorgänge und alphabetische Sortierungsvorgänge konzipiert. Sie sollte nicht verwendet werden, wenn der primäre Zweck des Methodenaufrufs darin besteht, zu bestimmen, ob zwei Teilzeichenfolgen identisch sind (d. h. wenn mit dem Methodenaufruf eine Überprüfung auf einen Rückgabewert von 0 (null) ausgeführt werden soll). Rufen Sie die Equals-Methode auf, um zu bestimmen, ob zwei Zeichenfolgen identisch sind.

strA und/oder strB können null sein. Per Definition ist jede Zeichenfolge, einschließlich String.Empty, im Vergleich größer als ein NULL-Verweis, und zwei NULL-Verweise sind gleich.

Der Vergleich kann weiter durch den options-Parameter bestimmt werden, der aus einem oder mehreren Membern der System.Globalization.CompareOptions-Enumeration besteht. Da mit dieser Methode jedoch kulturspezifische Vergleiche von Zeichenfolgen ausgeführt werden sollen, haben der CompareOptions.Ordinal-Wert und der CompareOptions.OrdinalIgnoreCase-Wert keine Auswirkungen.

Der Vergleich wird beendet, wenn Ungleichheit ermittelt wird oder beide Teilzeichenfolgen verglichen wurden. Wenn zwei Zeichenfolgen bis zum Ende der einen Zeichenfolge identisch sind und die andere Zeichenfolge über weitere Zeichen verfügt, wird diese Zeichenfolge als größer betrachtet. Der Rückgabewert ist das Ergebnis des zuletzt durchgeführten Vergleichs.

Hinweise zu Aufrufern

Zeichensätze enthalten ignorierbare Zeichen. Die Compare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions) methode betrachtet nicht diese Zeichen, wenn sie einen ordinalen oder einen kulturabhängigen Vergleich ausführt. Um ignorierbare Zeichen im Vergleich zu ermitteln, geben Sie einen Wert von CompareOptions.Ordinal oder CompareOptions.OrdinalIgnoreCase für den options-Parameter.

Im folgenden Beispiel werden mit der Compare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions)-Methode die Nachnamen zweier Personen verglichen. Anschließend werden sie in alphabetischer Reihenfolge aufgelistet.


using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string name1 = "Jack Smith";
      string name2 = "John Doe";

      // Get position of space character.
      int index1 = name1.IndexOf(" ");
      index1 = index1 < 0 ? 0 : index1--;

      int index2 = name2.IndexOf(" ");
      index1 = index1 < 0 ? 0 : index1--;

      int length = Math.Max(name1.Length, name2.Length);

      Console.WriteLine("Sorted alphabetically by last name:");
      if (String.Compare(name1, index1, name2, index2, length, 
                         new CultureInfo("en-US"), CompareOptions.IgnoreCase) < 0)
         Console.WriteLine("{0}\n{1}", name1, name2); 
      else
         Console.WriteLine("{0}\n{1}", name2, name1); 
   }
}
// The example displays the following output:
//       Sorted alphabetically by last name:
//       John Doe
//       Jack Smith


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5 SP1, 3.0 SP2, 2.0 SP2

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

Anzeigen:
© 2015 Microsoft