En el libro "Functional C#" de Enrico Buonanno, en la página 16, se da el siguiente Código:
namespace System { public delegate int Comparison<in T>(T x, T y); } var list = Enumerable.Range(1, 10).Select(i => i * 3).ToList(); list // => [3, 6, 9, 12, 15, 18, 21, 24, 27, 30] Comparison<int> alphabetically = (l, r) => l.ToString().CompareTo(r.ToString()); list.Sort(alphabetically); list // => [12, 15, 18, 21, 24, 27, 3, 30, 6, 9]Esto, sin embargo, cuando se ejecuta en REPL, no produce nada útil.
error CS1503: Argument "1": Konvertierung von "Comparison<int>" in "System.Collections.Generic.IComparer<int>" nicht möglich.¿Qué está yendo mal?
Comparison es un delegado existente en .NET, por lo que no necesita declarar el suyo propio. Simplemente elimine esta declaración y se List.Sort(Comparison<T>) correspondiente; compare this y this .