Bagikan melalui


Comparer.Compare(Object, Object) Metode

Definisi

Melakukan perbandingan peka huruf besar/kecil dari dua objek dengan jenis yang sama dan mengembalikan nilai yang menunjukkan apakah objek kurang dari, sama dengan, atau lebih besar dari yang lain.

public:
 virtual int Compare(System::Object ^ a, System::Object ^ b);
public int Compare (object a, 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

Objek pertama yang dibandingkan.

b
Object

Objek kedua untuk dibandingkan.

Mengembalikan

Bilangan bulat bertanda tangan yang menunjukkan nilai a relatif dan b, seperti yang diperlihatkan dalam tabel berikut.

Nilai Makna
Kurang dari nola kurang dari b.
Nola sama dengan b.
Lebih besar dari nola lebih besar dari b.

Penerapan

Pengecualian

Tidak a juga mengimplementasikan bIComparable antarmuka.

-atau-

a dan b dari jenis yang berbeda dan tidak satu pun dapat menangani perbandingan dengan yang lain.

Contoh

Contoh kode berikut menunjukkan bagaimana Compare mengembalikan nilai yang berbeda tergantung pada budaya yang terkait dengan Comparer.

using namespace System;
using namespace System::Collections;
using namespace System::Globalization;
int 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 = gcnew Comparer( gcnew 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 = gcnew Comparer( gcnew 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

*/
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

Keterangan

Jika a mengimplementasikan IComparable, maka a. CompareTo (b) dikembalikan; jika tidak, jika b mengimplementasikan IComparable, maka hasil yang dinegasikan dari b. CompareTo (a) dikembalikan.

Membandingkan null dengan jenis apa pun diizinkan dan tidak menghasilkan pengecualian saat menggunakan IComparable. Saat mengurutkan, null dianggap kurang dari objek lainnya.

Perbandingan string mungkin memiliki hasil yang berbeda tergantung pada budayanya. Untuk informasi selengkapnya tentang perbandingan khusus budaya, lihat System.Globalization namespace layanan dan Globalisasi dan Pelokalan.

Berlaku untuk

Lihat juga