(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

String.Compare-Methode (String, Int32, String, Int32, Int32, StringComparison)

Vergleicht Teilzeichenfolgen von zwei angegebenen String-Objekten gemäß den angegebenen Vergleichsregeln und gibt eine ganze Zahl zurück, die ihre relative Position 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,
	StringComparison comparisonType
)

Parameter

strA
Typ: System.String
Die erste im Vergleich zu verwendende Zeichenfolge.
indexA
Typ: System.Int32
Die Position der Teilzeichenfolge innerhalb von strA.
strB
Typ: System.String
Die zweite im Vergleich zu verwendende Zeichenfolge.
indexB
Typ: System.Int32
Die Position der Teilzeichenfolge innerhalb von strB.
length
Typ: System.Int32
Die maximale Anzahl der zu vergleichenden Zeichen der Teilzeichenfolgen.
comparisonType
Typ: System.StringComparison
Einer der Enumerationswerte, der die für den Vergleich zu verwendenden Regeln angibt.

Rückgabewert

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

Wert

Bedingung

Kleiner als 0

Die Teilzeichenfolge im strA-Parameter ist kleiner als die Teilzeichenfolge im strB-Parameter.

Zero

Die Teilzeichenfolgen sind gleich, oder der length-Parameter ist 0 (null).

Größer als 0 (null)

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

AusnahmeBedingung
ArgumentOutOfRangeException

indexA ist größer als strA.Length.

- oder -

indexB ist größer als strB.Length.

- oder -

indexA, indexB oder length ist negativ.

- oder -

indexA oder indexB ist null, und length ist größer als 0 (null).

ArgumentException

comparisonType ist kein StringComparison-Wert.

Die zu vergleichenden Teilzeichenfolgen beginnen in strA bei indexA und in strB bei indexB. indexA und indexB sind nullbasiert, d. h., dass sich das erste Zeichen in strA und in strB an der Position 0 (null) befindet und nicht an der Position 1. Die Länge der ersten Teilzeichenfolge ist gleich der Länge von strA minus indexA plus eins. Die Länge der zweiten Teilzeichenfolge ist gleich der Länge von strB minus indexB plus eins.

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.

Der comparisonType-Parameter gibt an, ob für den Vergleich die aktuelle oder die invariante Kultur verwendet werden soll, ob die Groß- und Kleinschreibung berücksichtigt oder ignoriert werden soll und ob die Regeln für (kulturabhängige) Wort- oder (kulturunabhängige) Ordinalsortierung verwendet werden sollen.

Einer oder beide Vergleichswerte können null sein. Per Definition ist jede Zeichenfolge, einschließlich der leeren Zeichenfolge (""), im Vergleich größer als ein NULL-Verweis, und zwei NULL-Verweise sind gleich.

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.

Unerwartete Ergebnisse können auftreten, wenn Vergleiche von kulturabhängigen Regeln zur Groß- und Kleinschreibung beeinflusst werden. Im Türkischen würde das folgende Beispiel falsche Ergebnisse liefern, da das Dateisystem im Türkischen für den Buchstaben "i" in "file" keine Regeln für die Groß- und Kleinschreibung verwendet.


static bool IsFileURI(String path)
{
    return (String.Compare(path, 0, "file:", 0, 5, true) == 0);
}


Vergleichen Sie den Pfadnamen von "file" mit einem Ordinalvergleich. Im Folgenden finden Sie dafür den korrekten Code:


static bool IsFileURI(String path)
{
    return (String.Compare(path, 0, "file:", 0, 5, StringComparison.OrdinalIgnoreCase) == 0);
}


Hinweise zu Aufrufern

Zeichensätze enthalten ignorierbare Zeichen. Die Compare(String, Int32, String, Int32, Int32, StringComparison) 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 StringComparison.Ordinal oder StringComparison.OrdinalIgnoreCase für den comparisonType-Parameter.

Im folgenden Beispiel werden zwei Teilzeichenfolgen verglichen.


// Sample for String.Compare(String, Int32, String, Int32, Int32)
using System;

class Sample {
    public static void Main() {
//                 0123456
    String str1 = "machine";
    String str2 = "device";
    String str;
    int result;

    Console.WriteLine();
    Console.WriteLine("str1 = '{0}', str2 = '{1}'", str1, str2);
    result = String.Compare(str1, 2, str2, 0, 2);
    str = ((result < 0) ? "less than" : ((result > 0) ? "greater than" : "equal to"));
    Console.Write("Substring '{0}' in '{1}' is ", str1.Substring(2, 2), str1);
    Console.Write("{0} ", str);
    Console.WriteLine("substring '{0}' in '{1}'.", str2.Substring(0, 2), str2);
    }
}
/*
This example produces the following results:

str1 = 'machine', str2 = 'device'
Substring 'ch' in 'machine' is less than substring 'de' in 'device'.
*/


.NET Framework

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

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.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

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft