From a1e5710caeface8e4a428b1655287dd633e69328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=BE=D0=BD=D1=81=D1=82=D0=B0=D0=BD=D1=82=D0=B8?= =?UTF-8?q?=D0=BD=20=D0=94=D1=8C=D1=8F=D1=87=D0=B5=D0=BD=D0=BA=D0=BE?= Date: Fri, 26 Jul 2019 18:21:02 +0300 Subject: [PATCH] Added generic version of Comparer --- Comparer[T].cs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 Comparer[T].cs 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; + } +}