IComparer.Compare(Object, Object) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İ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.
public:
int Compare(System::Object ^ x, System::Object ^ y);
public int Compare (object x, object y);
public int Compare (object? x, object? y);
abstract member Compare : obj * obj -> int
Public Function Compare (x As Object, y As Object) As Integer
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
ve y
göreli değerlerini gösteren işaretli bir tamsayıx
:
- 0'dan küçükse değerinden x
y
küçüktür.
- 0 ise eşittir x
y
.
- 0'dan büyükse değerinden x
y
büyüktür.
Özel durumlar
Arabirimi x
ne uygular IComparable ne de y
uygular.
-veya-
x
ve y
farklı türlerdedir ve ikisi de diğeriyle karşılaştırmaları işleyebilir.
Örnekler
Aşağıdaki örnek, bir dize dizisini IComparer sıralamak için arabirimini kullanır. Bu örnekte yöntemi, Compare dizi içeriğinin CaseInsensitiveComparer sırasını ters çevirmek için sınıfı kullanılarak uygulanır.
using System;
using System.Collections;
public class Example
{
public class ReverserClass : IComparer
{
// Call CaseInsensitiveComparer.Compare with the parameters reversed.
int IComparer.Compare(Object x, Object y)
{
return ((new CaseInsensitiveComparer()).Compare(y, x));
}
}
public static void Main()
{
// Initialize a string array.
string[] words = { "The", "quick", "brown", "fox", "jumps", "over",
"the", "lazy", "dog" };
// Display the array values.
Console.WriteLine("The array initially contains the following values:" );
PrintIndexAndValues(words);
// Sort the array values using the default comparer.
Array.Sort(words);
Console.WriteLine("After sorting with the default comparer:" );
PrintIndexAndValues(words);
// Sort the array values using the reverse case-insensitive comparer.
Array.Sort(words, new ReverserClass());
Console.WriteLine("After sorting with the reverse case-insensitive comparer:");
PrintIndexAndValues(words);
}
public static void PrintIndexAndValues(IEnumerable list)
{
int i = 0;
foreach (var item in list )
Console.WriteLine($" [{i++}]: {item}");
Console.WriteLine();
}
}
// The example displays the following output:
// The array initially contains the following values:
// [0]: The
// [1]: quick
// [2]: brown
// [3]: fox
// [4]: jumps
// [5]: over
// [6]: the
// [7]: lazy
// [8]: dog
//
// After sorting with the default comparer:
// [0]: brown
// [1]: dog
// [2]: fox
// [3]: jumps
// [4]: lazy
// [5]: over
// [6]: quick
// [7]: the
// [8]: The
//
// After sorting with the reverse case-insensitive comparer:
// [0]: the
// [1]: The
// [2]: quick
// [3]: over
// [4]: lazy
// [5]: jumps
// [6]: fox
// [7]: dog
// [8]: brown
Imports System.Collections
Public Class Example
Public Class ReverserClass : Implements IComparer
' Call CaseInsensitiveComparer.Compare with the parameters reversed.
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer _
Implements IComparer.Compare
Return New CaseInsensitiveComparer().Compare(y, x)
End Function
End Class
Public Shared Sub Main()
' Initialize a string array.
Dim words() As String = { "The", "quick", "brown", "fox", "jumps", "over",
"the", "lazy", "dog" }
' Display the array values.
Console.WriteLine("The array initially contains the following values:")
PrintIndexAndValues(words)
' Sort the array values of the ArrayList using the default comparer.
Array.Sort(words)
Console.WriteLine("After sorting with the default comparer:")
PrintIndexAndValues(words)
' Sort the array values using the reverse case-insensitive comparer.
Array.Sort(words, new ReverserClass())
Console.WriteLine("After sorting with the reverse case-insensitive comparer:")
PrintIndexAndValues(words)
End Sub
Public Shared Sub PrintIndexAndValues(list As IEnumerable)
Dim i As Integer = 0
For Each item In list
Console.WriteLine($" [{i}]: {item}")
i += 1
Next
Console.WriteLine()
End Sub
End Class
' The example displays the following output:
' The array initially contains the following values:
' [0]: The
' [1]: quick
' [2]: brown
' [3]: fox
' [4]: jumps
' [5]: over
' [6]: the
' [7]: lazy
' [8]: dog
'
' After sorting with the default comparer:
' [0]: brown
' [1]: dog
' [2]: fox
' [3]: jumps
' [4]: lazy
' [5]: over
' [6]: quick
' [7]: the
' [8]: The
'
' After sorting with the reverse case-insensitive comparer:
' [0]: the
' [1]: The
' [2]: quick
' [3]: over
' [4]: lazy
' [5]: jumps
' [6]: fox
' [7]: dog
' [8]: brown
Açıklamalar
Tercih edilen uygulama, parametrelerden CompareTo birinin yöntemini kullanmaktır.
Herhangi bir türle karşılaştırmaya null
izin verilir ve kullanırken IComparableözel durum oluşturmaz. Sıralama sırasında, null
diğer nesnelerden daha az olarak kabul edilir.