我是 C# 新手。我需要编写一个代码来对 T 数组进行排序。我在选择比较方法时遇到了问题。
根据我的任务,我应该提供方法,使用 Comparer<T>、IComparer<T>和Comparison<T>。
我正在寻找一种解决方案,它可以将一种方法引入另一种方法,因此我避免对Comparer<T>,IComparer<T>和中的每一个重复相同的逻辑Comparison<T>。
我知道,这Comparison<T>可能会被“重新创建”为Comparer<T>with Comparer<T>.Create,但是如何使Comparer<T>和IComparer<T>可以互换呢?
到目前为止,方法的原型如下所示。
public T[] Sort<T>(T[] toSort) where T : System.IComparable<T>;
public T[] Sort<T>(T[] toSort, IComparer<T> comparer);
public T[] Sort<T>(T[] toSort, Comparer<T> comparer);
public T[] Sort<T>(T[] toSort, Comparison<T> comparison);
Run Code Online (Sandbox Code Playgroud)