using System.Collections.Generic;
namespace Developpez.Dotnet.Collections
{
///
/// Comparateur qui inverse l'ordre défini par le comparateur de base passé en
/// paramètre du constructeur.
///
/// Type des éléments à comparer
public class ReverseComparer : IComparer
{
private readonly IComparer _baseComparer;
///
/// Crée une instance de ReverseComparer
///
///Comparateur à inverser
public ReverseComparer(IComparer baseComparer)
{
baseComparer.CheckArgumentNull("baseComparer");
_baseComparer = baseComparer;
}
#region Implementation of IComparer
///
/// Compare deux instances de T, en inversant l'ordre du comparateur de base
///
/// Premier élément à comparer
/// Second élément à comparer
/// -1 si x > y, 1 si x < y, 0 si x == y
public int Compare(T x, T y)
{
return _baseComparer.Compare(y, x);
}
#endregion
}
}