using System; using System.Collections.Generic; namespace Developpez.Dotnet.Collections { /// /// Fournit des méthodes d'extension pour travailler avec des IComparer<T> et des Comparison<T> /// public static class CompareExtensions { /// /// Obtient un IComparer<T> à partir de la comparaison spécifiée /// /// Type des éléments à comparer /// La comparaison à utiliser /// Un IComparer<T> qui utilise la comparaison spécifiée public static IComparer ToComparer(this Comparison comparison) { return new ComparisonComparer(comparison); } /// /// Obtient une Comparison<T> à partir du IComparer<T> spécifié /// /// Type des éléments à comparer /// Comparateur à utiliser /// La comparaison équivalente au IComparer<T> spécifié public static Comparison ToComparison(this IComparer comparer) { return comparer.Compare; } /// /// Inverse le IComparer<T> spécifié /// /// Le type des éléments à comparer /// Le comparateur à inverser /// Un comparateur avec une logique inversée public static IComparer Reverse(this IComparer comparer) { return new ReverseComparer(comparer); } /// /// Inverse la Comparison<T> spécifiée /// /// Le type des éléments à comparer /// La comparaison à inverser /// Une comparaison avec une logique inversée public static Comparison Reverse(this Comparison comparison) { return (x, y) => comparison(y, x); } } }