赞
踩
目录
默认升序排列,list提供了排序方法。(系统自带方法)
- List<int> list=new List<int>();
- list.Add(3);
- list.Add(2);
- list.Add(7);
- list.Sort();
ArrayList里面也有类似的方法。
自定义一个类Item,在其中的类方法中写上相应的逻辑,通过改变逻辑来改变升降序。
- List<Item> itemList=new List<Item>();
- itemList.Add(new Item(45));
- itemList.Add(new Item(4));
- itemList.Add(new Item(27));
- //排序方法
- itemList.Sort();
自定义类之所以通过改变逻辑来改变升降序,是因为这里的Sort方法是靠类内部的逻辑实现的,此处我省略了没完整写出代码。而刚刚讲述的Sort系统內自带了逻辑,并且有几种重载。这里不能直接使用Sort必须自己定义否则就会报错。大家可以自己通过实验证实。
这是更加简单的一种方式。
下面我定义一个ShopItem类(类的部分与第二部分相似,没有截取),需要注意的是,类要继承接口IComparable(存在几种接口,你也可以使用带有泛型的接口,如果直接使用IComparable接口,里面的内容是用object承载,要通过as进行转换写逻辑,不然会报错)
这里最简便的方式是使用lambda表达式,或者如果你对于它们不熟练,你也可以自己定义一个新的函数再使用。
这里采用lambda表达式和三目运算符一起使用更加便捷。
其中return1\return -1\return 0分别指:
正数(任意正数都可以,这里我用的1):将数字插入到对象之后。
负数(任意负数都可以):将数字插入到对象之前。
0:表示该对象所处的位置。
(大家可以结合数轴理解)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。