现有装满Customer对象的List<Customer>一个,Customer里面有一属性orderID 是数字
现在想根据Customer.orderID将List<Customer>排序 请问要怎么做?
如果你用的是3.5的framework,用lamda表达式就可以实现,很简单。
假设这里开始构建list:
List<Customer> list=new List<Customer>();
list.add();
.......
--------这里进行排序-----------
list.Sort((customer1, customer2) => customer1.orderID .CompareTo(customer2.orderID ));
就这一句话就可以了。
如果你不是3.5,用上面的语句编译出错的话,可以用显示的委托:
list.Sort(delegate(Customer customer1, Customer customer2) { return customer1.orderID .CompareTo(customer2.orderID ); });
都只需要一句话就行了。
当然还有很多方法都可以实现,比如上面提到得实现Icomparable接口之类的。
- 补充:
-
lambda表达式来实现应该是最简洁的了,建议使用这个,就一个表达式就够了,可以少写很多代码。
如果版本不支持的话,就使用匿名委托来实现,也很简洁。