List 排序

List 排序API

  public void Sort(Comparison<T> comparison);
  public void Sort(int index, int count, IComparer<T> comparer);
  public void Sort();
  public void Sort(IComparer<T> comparer);

 

1. List<int> list = new List<int>() { 2, 1 }   升序,降序直接反转升序

list.Sort();// 升序排序
list.Reverse();// 反转顺序
list.Sort((x, y) => x.CompareTo(y));//升序
list.Sort((x, y) => -x.CompareTo(y));//降序

 

2. List<TestList> testList = new List<TestList>()

TestList 是一个类 则不可直接list.Sort()进行排序

相关排序方式如下:

   List<TestList> testList = new List<TestList>();

        TestList list1 = new TestList {
            name = "A",
            height = 10,
            status = 1,
        };

        TestList list2 = new TestList {
            name = "B",
            height = 20,
            status = 0,
        };
        TestList list3 = new TestList {
            name = "C",
            height = 30,
            status = 1,
        };
        TestList list4 = new TestList {
            name = "D",
            height = 40,
            status = 0,
        };

        testList.Add(list1);
        testList.Add(list2);
        testList.Add(list3);
        testList.Add(list4);

升序:

 testList.Sort(
            (a, b) => a.status.CompareTo(b.status)
        );

 

testList = testList.OrderBy(o => o.status).ToList();

附:Sort的排序打乱了原有的顺序,OrderBy则没有打乱

 

降序:

testList.Sort(
            (a, b) => -a.status.CompareTo(b.status)
        );

testList = testList.OrderByDescending(o => o.status).ToList();

附:降序Sort排序也是打乱了原有的排序

 

多权重排序

 

testList = testList.OrderBy(o => o.status).OrderBy(o=>o.height).ToList();

testList = testList.OrderByDescending(o => o.status).OrderByDescending(o => o.height).ToList();
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值