当前位置:   article > 正文

C#系列之List排序_c#前臺控件將翻頁的list進行排序

c#前臺控件將翻頁的list進行排序

目录

1.List自带排序方法

2.自定义类的排序

3.通过委托函数进行排序


1.List自带排序方法

默认升序排列,list提供了排序方法。(系统自带方法)

  1. List<int> list=new List<int>();
  2. list.Add(3);
  3. list.Add(2);
  4. list.Add(7);
  5. list.Sort();

ArrayList里面也有类似的方法。

2.自定义类的排序

自定义一个类Item,在其中的类方法中写上相应的逻辑,通过改变逻辑来改变升降序。

  1. List<Item> itemList=new List<Item>();
  2. itemList.Add(new Item(45));
  3. itemList.Add(new Item(4));
  4. itemList.Add(new Item(27));
  5. //排序方法
  6. itemList.Sort();

自定义类之所以通过改变逻辑来改变升降序,是因为这里的Sort方法是靠类内部的逻辑实现的,此处我省略了没完整写出代码。而刚刚讲述的Sort系统內自带了逻辑,并且有几种重载。这里不能直接使用Sort必须自己定义否则就会报错。大家可以自己通过实验证实。

3.通过委托函数进行排序

这是更加简单的一种方式。

下面我定义一个ShopItem类(类的部分与第二部分相似,没有截取),需要注意的是,类要继承接口IComparable(存在几种接口,你也可以使用带有泛型的接口,如果直接使用IComparable接口,里面的内容是用object承载,要通过as进行转换写逻辑,不然会报错)

 这里最简便的方式是使用lambda表达式,或者如果你对于它们不熟练,你也可以自己定义一个新的函数再使用。

这里采用lambda表达式和三目运算符一起使用更加便捷。

其中return1\return -1\return 0分别指:

正数(任意正数都可以,这里我用的1):将数字插入到对象之后。

负数(任意负数都可以):将数字插入到对象之前。

0:表示该对象所处的位置。

(大家可以结合数轴理解)

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号