Share via


Comparer<T>.IComparer.Compare(Object, Object) Metode

Definisi

Membandingkan dua objek dan mengembalikan nilai yang menunjukkan apakah satu kurang dari, sama dengan, atau lebih besar dari yang lain.

 virtual int System.Collections.IComparer.Compare(System::Object ^ x, System::Object ^ y) = System::Collections::IComparer::Compare;
int IComparer.Compare (object x, object y);
abstract member System.Collections.IComparer.Compare : obj * obj -> int
override this.System.Collections.IComparer.Compare : obj * obj -> int
Function Compare (x As Object, y As Object) As Integer Implements IComparer.Compare

Parameter

x
Object

Objek pertama yang dibandingkan.

y
Object

Objek kedua untuk dibandingkan.

Mengembalikan

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

Nilai Makna
Kurang dari nolx kurang dari y.
Nolx sama dengan y.
Lebih besar dari nolx lebih besar dari y.

Penerapan

Pengecualian

x atau y berjenis yang tidak dapat dilemparkan ke jenis T.

-atau-

x dan y tidak mengimplementasikan IComparable<T> antarmuka generik atau IComparable antarmuka.

Contoh

Contoh berikut menunjukkan cara menggunakan IComparer.Compare metode untuk membandingkan dua objek. Contoh ini adalah bagian dari contoh yang lebih besar yang disediakan untuk Comparer<T> kelas .


// This explicit interface implementation
// compares first by the length.
// Returns -1 because the length of BoxA
// is less than the length of BoxB.
BoxLengthFirst LengthFirst = new BoxLengthFirst();

Comparer<Box> bc = (Comparer<Box>) LengthFirst;

Box BoxA = new Box(2, 6, 8);
Box BoxB = new Box(10, 12, 14);
int x = LengthFirst.Compare(BoxA, BoxB);
Console.WriteLine();
Console.WriteLine(x.ToString());

' This explicit interface implementation
' compares first by the length.
' Returns -1 because the length of BoxA
' is less than the length of BoxB.
Dim LengthFirst As New BoxLengthFirst()

Dim bc As Comparer(Of Box) = CType(LengthFirst, Comparer(Of Box))

Dim BoxA As New Box(2, 6, 8)
Dim BoxB As New Box(10, 12, 14)
Dim x As Integer = LengthFirst.Compare(BoxA, BoxB)
Console.WriteLine()
Console.WriteLine(x.ToString())

Keterangan

Metode ini adalah pembungkus untuk Compare(T, T) metode , jadi obj harus ditransmisikan ke jenis yang ditentukan oleh argumen T generik instans saat ini. Jika tidak dapat dilemparkan ke T, akan ArgumentException dilemparkan.

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

Catatan Bagi Pemanggil

Compare(T, T) dan Equals(T, T) berperilaku berbeda dalam hal sensitivitas budaya dan sensitivitas huruf besar/kecil.

Untuk perbandingan string, StringComparer kelas direkomendasikan lebih dari Comparer<String>. StringComparer Properti kelas mengembalikan instans yang telah ditentukan sebelumnya yang melakukan perbandingan string dengan kombinasi sensitivitas budaya dan sensitivitas huruf besar/kecil yang berbeda. Sensitivitas huruf besar/kecil dan sensitivitas budaya konsisten di antara anggota instans yang sama StringComparer .

Untuk informasi selengkapnya tentang perbandingan khusus budaya, lihat System.Globalization namespace layanan dan Globalisasi dan Pelokalan.

Berlaku untuk

Lihat juga