您的位置:首页 > 其它

对象数组根据某属性列的灵活排序

2008-01-03 13:45 459 查看
在工作中经常会遇到对象数组根据某个属性进行排序的问题。这里介绍一个方法。

以汽车为例:
public class Car:IComparable<Car>

Array.Sort<Car>(arr);
但是随着项目的发展的发展我们会迎来新的问题,我们现在又需要根据Type排序了,怎么办呢?

不用担心我们只要使用一个最简单的Adapter模式就能解决这个问题

下面我们来创建这个适配器:

public class ComparaCarAdapter : IComparer<Car>

Array.Sort<Car>(arr,new ComparaCarAdapter());
但是这样如果属性很多,会产生很多的类,怎么办呢。那么利用反射吧。将ComparaCarAdapter改造为:

public class ComparaCarAdapter : IComparer<Car>

Array.Sort<Car>(arr, new ComparaCarAdapter("Weight"));
OK搞定,应该足够灵活了吧。

(转载请通知并注明出处。)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: