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 } }