Comparer.Compare(Object, Object) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Führt einen Vergleich zwischen zwei Objekten desselben Typs durch und gibt einen Wert zurück, der angibt, ob ein Objekt kleiner als, gleich oder größer als der andere ist.
public:
virtual int Compare(System::Object ^ a, System::Object ^ b);
public int Compare(object a, object b);
abstract member Compare : obj * obj -> int
override this.Compare : obj * obj -> int
Public Function Compare (a As Object, b As Object) As Integer
Parameter
- a
- Object
Das erste zu vergleichende Objekt.
- b
- Object
Das zweite zu vergleichende Objekt.
Gibt zurück
Eine signierte ganze Zahl, die die relativen Werte von a und b, wie in der folgenden Tabelle dargestellt, angibt.
| Wert: | Bedeutung |
|---|---|
| Kleiner als Null |
a ist kleiner als b.
|
| Null |
a entspricht b.
|
| Größer als Null |
a ist größer als b.
|
Implementiert
Ausnahmen
Weder noch ab implementiert sie die IComparable Schnittstelle.
-oder-
a und b sind von unterschiedlichen Typen, und keiner kann Vergleiche mit dem anderen behandeln.
Beispiele
Das folgende Codebeispiel zeigt, wie Compare unterschiedliche Werte abhängig von der Kultur zurückgegeben werden, die der ComparerDatei zugeordnet ist.
using System;
using System.Collections;
using System.Globalization;
public class SamplesComparer {
public static void Main() {
// Creates the strings to compare.
String str1 = "llegar";
String str2 = "lugar";
Console.WriteLine( "Comparing \"{0}\" and \"{1}\" ...", str1, str2 );
// Uses the DefaultInvariant Comparer.
Console.WriteLine( " Invariant Comparer: {0}", Comparer.DefaultInvariant.Compare( str1, str2 ) );
// Uses the Comparer based on the culture "es-ES" (Spanish - Spain, international sort).
Comparer myCompIntl = new Comparer( new CultureInfo( "es-ES", false ) );
Console.WriteLine( " International Sort: {0}", myCompIntl.Compare( str1, str2 ) );
// Uses the Comparer based on the culture identifier 0x040A (Spanish - Spain, traditional sort).
Comparer myCompTrad = new Comparer( new CultureInfo( 0x040A, false ) );
Console.WriteLine( " Traditional Sort : {0}", myCompTrad.Compare( str1, str2 ) );
}
}
/*
This code produces the following output.
Comparing "llegar" and "lugar" ...
Invariant Comparer: -1
International Sort: -1
Traditional Sort : 1
*/
Imports System.Collections
Imports System.Globalization
Public Class SamplesComparer
Public Shared Sub Main()
' Creates the strings to compare.
Dim str1 As [String] = "llegar"
Dim str2 As [String] = "lugar"
Console.WriteLine("Comparing ""{0}"" and ""{1}"" ...", str1, str2)
' Uses the DefaultInvariant Comparer.
Console.WriteLine(" Invariant Comparer: {0}", Comparer.DefaultInvariant.Compare(str1, str2))
' Uses the Comparer based on the culture "es-ES" (Spanish - Spain, international sort).
Dim myCompIntl As New Comparer(New CultureInfo("es-ES", False))
Console.WriteLine(" International Sort: {0}", myCompIntl.Compare(str1, str2))
' Uses the Comparer based on the culture identifier 0x040A (Spanish - Spain, traditional sort).
Dim myCompTrad As New Comparer(New CultureInfo(&H40A, False))
Console.WriteLine(" Traditional Sort : {0}", myCompTrad.Compare(str1, str2))
End Sub
End Class
'This code produces the following output.
'
'Comparing "llegar" and "lugar" ...
' Invariant Comparer: -1
' International Sort: -1
' Traditional Sort : 1
Hinweise
Wenn a dies implementiert wird IComparable, dann a.
CompareTo (b) wird zurückgegeben; andernfalls wird bIComparabledas negierte Ergebnis von b.
CompareTo (a) wird zurückgegeben.
Der Vergleich null mit einem beliebigen Typ ist zulässig und generiert bei Verwendung IComparablekeine Ausnahme. Bei der Sortierung gilt dies null als kleiner als jedes andere Objekt.
Zeichenfolgenvergleiche können je nach Kultur unterschiedliche Ergebnisse aufweisen. Weitere Informationen zu kulturspezifischen Vergleichen finden Sie unter Namespace System.Globalization und Globalisierung und Lokalisierung.