我需要2的Comparer&LT; T&GT;用于在两个方向上分选? [英] Do I need 2 Comparer<T> for sorting in both directions?
本文介绍了我需要2的Comparer&LT; T&GT;用于在两个方向上分选?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果我创建一个的Comparer&LT; T&GT;
进行排序一组对象而言,有一个简单的方法来'倒置',所以我可以在排序另一个方向?或者,我需要定义一个第二的Comparer&LT; T&GT;
与测试的比较方法交换左右
解决方案
公共类ReverseComparer&LT; T&GT; :的Comparer&LT; T&GT;
{
私人的Comparer&LT; T&GT; inputComparer;
公共ReverseComparer(的Comparer&LT; T&GT; 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));
这篇关于我需要2的Comparer&LT; T&GT;用于在两个方向上分选?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文