c#开发——多条件排序

实现多条件下对列表元素进行排序

一、使用LINQ的扩展方法:OrderBy()和ThenBy();

单一条件排序:
list.OrderBy(x=>x.A).ToList();           //根据元素的A属性大小来顺序排序list里的元素;

list.OrderByDescending(x=>x.A).ToList();  //根据元素的A属性大小来降序排序list里的元素;
多排序条件:
list = list.OrderByDescending(x => x.classId)

           .ThenByDescending(x => x.id)

           .ToList();

先根据元素的classId值排序,classId值相等情况下,再根据id值进行排序;

二、使用C#List的Sort()及其重载方法;

1、单一条件排序
1、对list里的元素进行顺序/升序排序:

list.Sort((x,y)=>  x.CompareTo(y));

list.Sort((x,y)=>{return x.CompareTo(y);});


2、对list里的元素进行降序排序:

list.Sort((x,y)=> -x.CompareTo(y));

list.Sort((x,y)=>  y.CompareTo(x));

list.Sort((x,y)=>{return y.CompareTo(y);});


3、以list里的元素的某个子属性大小进行比较排序

list.Sort((x,y)=>  x.A.CompareTo(y.A));    //根据元素的A属性,对list里的元素,进行顺序排序
2、多排序条件
list.Sort((x,y)=>{

        int t =x.schoolId.CompareTo(y.schoolId);

        if(t!=0) return t;

        t = x.classId.CompareTo(y.classId);

        retur t ! = 0 ? t : x.Class.id.CompareTo(y.Class.id.Compare);

});

先根据元素的schoolId进行排序;
同一个schoolId时,根据元素的classId进行排序;
同一个classId时,再根据元素的class值里的id值来进行排序;

———————————————————————————————————————————

三、方法详解说明:暂略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值