diff --git a/Comparer[T].cs b/Comparer[T].cs new file mode 100644 index 0000000..db342b3 --- /dev/null +++ b/Comparer[T].cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; + +namespace Platform.Comparers +{ + public class Comparer : IComparer + { + private readonly Func _compare; + + public Comparer(IComparer comparer) + : this(comparer.Compare) + { + } + + public Comparer(Func compare) => _compare = compare; + + public int Compare(T x, T y) => _compare(x, y); + + public static implicit operator Comparer(Func compare) => new Comparer(compare); + + public static implicit operator Func(Comparer comparer) => comparer._compare; + } +}