IComparer<T>IComparer<T>IComparer<T>IComparer<T> Interface

Definizione

Definisce un metodo che un tipo implementa per confrontare due oggetti.Defines a method that a type implements to compare two objects.

``````generic <typename T>
public interface class IComparer``````
``public interface IComparer<in T>``
``type IComparer<'T> = interface``
``Public Interface IComparer(Of In T)``

Parametri di tipo

T

Tipo di oggetti da confrontare.The type of objects to compare.

Derivato

Esempi

L'esempio seguente implementa il IComparer<T> interfaccia per confrontare gli oggetti di tipo `Box` in base alle relative dimensioni.The following example implements the IComparer<T> interface to compare objects of type `Box` according to their dimensions. In questo esempio fa parte di un esempio più esaustivo disponibile per il Comparer<T> classe.This example is part of a larger example provided for the Comparer<T> class.

``````// This class is not demonstrated in the Main method
// and is provided only to show how to implement
// the interface. It is recommended to derive
// from Comparer<T> instead of implementing IComparer<T>.
public class BoxComp : IComparer<Box>
{
// Compares by Height, Length, and Width.
public int Compare(Box x, Box y)
{
if (x.Height.CompareTo(y.Height) != 0)
{
return x.Height.CompareTo(y.Height);
}
else if (x.Length.CompareTo(y.Length) != 0)
{
return x.Length.CompareTo(y.Length);
}
else if (x.Width.CompareTo(y.Width) != 0)
{
return x.Width.CompareTo(y.Width);
}
else
{
return 0;
}
}
}
``````
``````' This class is not demonstrated in the Main method
' and is provided only to show how to implement
' the interface. It is recommended to derive
' from Comparer<T> instead of implementing IComparer<T>.
Public Class BoxComp
Implements IComparer(Of Box)
' Compares by Height, Length, and Width.
Public Function Compare(ByVal x As Box, ByVal y As Box) As Integer Implements _
IComparer(Of Box).Compare
If x.Height.CompareTo(y.Height) <> 0 Then
Return x.Height.CompareTo(y.Height)
ElseIf x.Length.CompareTo(y.Length) <> 0 Then
Return x.Length.CompareTo(y.Length)
ElseIf x.Width.CompareTo(y.Width) <> 0 Then
Return x.Width.CompareTo(y.Width)
Else
Return 0
End If
End Function
End Class
``````

Commenti

Questa interfaccia viene utilizzata con il List<T>.Sort e List<T>.BinarySearch metodi.This interface is used with the List<T>.Sort and List<T>.BinarySearch methods. Fornisce un modo per personalizzare l'ordinamento di una raccolta.It provides a way to customize the sort order of a collection. Le classi che implementano questa interfaccia sono incluse le SortedDictionary<TKey,TValue> e SortedList<TKey,TValue> classi generiche.Classes that implement this interface include the SortedDictionary<TKey,TValue> and SortedList<TKey,TValue> generic classes.

L'implementazione predefinita di questa interfaccia è il Comparer<T> classe.The default implementation of this interface is the Comparer<T> class. Il StringComparer classe implementa questa interfaccia per il tipo String.The StringComparer class implements this interface for type String.

Questa interfaccia supporta i confronti di ordinamento.This interface supports ordering comparisons. Ovvero, quando il Compare metodo restituisce 0, significa che due oggetti lo stesso ordine.That is, when the Compare method returns 0, it means that two objects sort the same. Implementazione di confronti di uguaglianza esatta avviene tramite il IEqualityComparer<T> interfaccia generica.Implementation of exact equality comparisons is provided by the IEqualityComparer<T> generic interface.

È consigliabile eseguire la derivazione dal Comparer<T> classe anziché implementare il IComparer<T> interfaccia, in quanto il Comparer<T> classe fornisce un'implementazione esplicita dell'interfaccia del IComparer.Compare (metodo) e il Default proprietà che Ottiene l'operatore di confronto predefinito per l'oggetto.We recommend that you derive from the Comparer<T> class instead of implementing the IComparer<T> interface, because the Comparer<T> class provides an explicit interface implementation of the IComparer.Compare method and the Default property that gets the default comparer for the object.

Metodi

 Compare(T, T) Compare(T, T) Compare(T, T) Compare(T, T) Confronta due oggetti e restituisce un valore indicante se uno è minore, uguale o maggiore dell'altro.Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.