如果我创建一个的Comparer< T>
进行排序一组对象而言,有一个简单的方法来'倒置',所以我可以在排序另一个方向?或者,我需要定义一个第二的Comparer< T>
与测试的比较方法交换左右
公共类ReverseComparer< T> :的Comparer< T>
{
私人的Comparer< T> inputComparer;
公共ReverseComparer(的Comparer< T> inputComparer)
{
this.inputComparer = inputComparer;
}
公众覆盖INT比较(T X,T Y)
{
返回inputComparer.Compare(Y,X);
}
}
这允许你做的是这样的:
list.Sort(新ReverseComparer(someOtherComparer));
If I create a Comparer<T>
for the purposes of sorting a set of objects, is there a simple way to 'invert' it so I can sort in the other direction? Or do I need to define a 2nd Comparer<T>
with the tests in the Compare method swapped around?
public class ReverseComparer<T> : Comparer<T>
{
private Comparer<T> inputComparer;
public ReverseComparer(Comparer<T> inputComparer)
{
this.inputComparer = inputComparer;
}
public override int Compare(T x, T y)
{
return inputComparer.Compare(y, x);
}
}
This allows you to do something like:
list.Sort(new ReverseComparer(someOtherComparer));