IComparer Interface
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een methode weergegeven waarmee twee objecten worden vergeleken.
public interface class IComparer
public interface IComparer
[System.Runtime.InteropServices.ComVisible(true)]
public interface IComparer
type IComparer = interface
[<System.Runtime.InteropServices.ComVisible(true)>]
type IComparer = interface
Public Interface IComparer
- Afgeleid
- Kenmerken
Voorbeelden
In het volgende voorbeeld wordt de IComparer interface gebruikt om een tekenreeksmatrix te sorteren. In dit voorbeeld wordt de Compare methode geïmplementeerd met behulp van de CaseInsensitiveComparer klasse om de volgorde van de inhoud van de matrix om te draaien.
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
Opmerkingen
Deze interface wordt gebruikt in combinatie met de Array.Sort en Array.BinarySearch methoden. Het biedt een manier om de sorteervolgorde van een verzameling aan te passen. Zie de Compare methode voor notities over parameters en retourwaarde. Het algemene equivalent is de System.Collections.Generic.IComparer<T> interface.
De standaard implementatie van deze interface is de Comparer klasse. Zie voor de algemene versie van deze interface System.Collections.Generic.IComparer<T>.
Methoden
| Name | Description |
|---|---|
| Compare(Object, Object) |
Vergelijkt twee objecten en retourneert een waarde die aangeeft of één kleiner is dan, gelijk is aan of groter is dan de andere. |