Comparer<T>.IComparer.Compare(Object, Object) Yöntem

Tanım

İki nesneyi karşılaştırır ve birinin diğerinden küçük, buna eşit veya ondan büyük olduğunu belirten bir değer döndürür.

 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

Parametreler

x
Object

Karşılaştırma yapılacak ilk nesne.

y
Object

Karşılaştırma yapılacak ikinci nesne.

Döndürülenler

Aşağıdaki tabloda gösterildiği gibi ve ygöreli değerlerini gösteren işaretli bir tamsayıx.

Değer Anlamı
Sıfırdan küçükx değerinden küçüktür y.
Sıfırx eşittir y.
Sıfırdan büyükx değerinden büyüktür y.

Uygulamalar

Özel durumlar

x veya y türüne atanamayan bir türdür T.

-veya-

x ve y genel arabirimini veya arabirimini uygulamayın IComparable<T>IComparable .

Örnekler

Aşağıdaki örnekte iki nesneyi karşılaştırmak için yönteminin IComparer.Compare nasıl kullanılacağı gösterilmektedir. Bu örnek, sınıfı için Comparer<T> sağlanan daha büyük bir örneğin parçasıdır.


// 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())

Açıklamalar

Bu yöntem yöntemi için Compare(T, T) bir sarmalayıcıdır, bu nedenle obj geçerli örneğin genel bağımsız değişkeni T tarafından belirtilen türe yayınlanmalıdır. 'a Tyayınlanamazsa, bir ArgumentException oluşturulur.

Herhangi bir başvuru türüyle karşılaştırmaya null izin verilir ve özel durum oluşturmaz. Sıralama sırasında, null diğer nesnelerden daha az olarak kabul edilir.

Arayanlara Notlar

Compare(T, T) ve Equals(T, T) kültüre duyarlılık ve büyük/küçük harf duyarlılığı bakımından farklı davranır.

Dize karşılaştırmaları için sınıfı StringComparer üzerinden Comparer<String>önerilir. StringComparer sınıfının özellikleri, kültür duyarlılığı ve büyük/küçük harf duyarlılığının farklı bileşimleriyle dize karşılaştırmaları gerçekleştiren önceden tanımlanmış örnekler döndürür. Büyük/küçük harf duyarlılığı ve kültür duyarlılığı, aynı StringComparer örneğin üyeleri arasında tutarlıdır.

Kültüre özgü karşılaştırmalar hakkında daha fazla bilgi için bkz System.Globalization . ad alanı ve Genelleştirme ve Yerelleştirme.

Şunlara uygulanır

Ayrıca bkz.