----------------------------------------------------.对基础类型排序

方法一:

调用sort方法,如果需要降序,进行反转:

List<int> list = new List<int>();
    list.Sort();// 升序排序
    list.Reverse();// 反转顺序

方法二:

使用lambda表达式,在前面加个负号就是降序了

List<int> list= new List<int>(){5,1,22,11,4};
    list.Sort((x, y) => x.CompareTo(y));//升序
    list.Sort((x, y) => -x.CompareTo(y));//降序
 
-------------------------------------------------------------对非基础类型排序

方法一:

修改类本身,实现IComparable<T>接口

//重写的CompareTo方法,根据Id排序
    public int CompareTo(People other)
    {
        if (null == other)
        {
            return 1;//空值比较大,返回1
        }
        //return this.Id.CompareTo(other.Id);//升序
        return other.Id.CompareTo(this.Id);//降序
    }

方法二:

委托

list.Sort(delegate(People p1,People p2)
    {
        return p1.Id.CompareTo(p2.Id);//升序
    });

lambda

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

-------------------------------------------------------------OrderBy

list = list.OrderBy(o => o.Id).ToList();//升序
    list = list.OrderByDescending(o => o.Id).ToList();//降序
     
    list = list.OrderBy(o => o.Id).ThenBy(o=>o.Name).ToList();
    list = list.OrderByDescending(o => o.Id).ThenByDescending(o=>o.Name).ToList();//降序

---------------------------------------------------------------------------linq 去重

var list_distinct = list.GroupBy(a => new { a.name1, a.name2, a.name3 }).Select(a => a.Key).ToList();

------------------------------------------------------linq  查询金额最高前几条
                    //
List<ListSortModel> sortedList = (from a in list orderby a.Amount descending select a).Take(data.AmountCount).ToList();

-----------------------------linq取DataTable某一列数据返回给一个List<int>
var list =dt.AsEnumerable().Select<DataRow, int>(x => Convert.ToInt32(x["列名"])).ToList<int>();

c# linq lambda 去重,排序,取最高纪录。的更多相关文章

  1. [算法1-排序](.NET源码学习)& LINQ & Lambda

    [算法1-排序](.NET源码学习)& LINQ & Lambda 说起排序算法,在日常实际开发中我们基本不在意这些事情,有API不用不是没事找事嘛.但必要的基础还是需要了解掌握. 排 ...

  2. linux下批量修改存有超大数据量IP文件中的IP内容以及去重排序

    作为一个linux的学徒,分享一下自己解决这个小问题的心得,在处理这个问题时使用了一个小技巧感觉很适用,个人发觉linux的终端真滴是非常强大,下面就详细地介绍这个问题以及解决办法吧 问题描述:由于要 ...

  3. 分享一种容易理解的js去重排序方法

    <script> var arr=[1,8,6,4,88,22,99,4,6,86,5,58,89,5]; //先使用sort()函数去重 var a=arr.sort(function ...

  4. SQL,LINQ,Lambda语法对照图(转载)

    如果你熟悉SQL语句,当使用LINQ时,会有似曾相识的感觉.但又略有不同.下面是SQL和LINQ,Lambda语法对照图 SQL LINQ Lambda SELECT * FROM HumanReso ...

  5. for循环去重排序

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. 去重+排序板子(set+map)

    题意: 给定n个数,去重排序后输出个数和每个数 1.map实现 #pragma GCC optimize("O2") #include<iostream> #inclu ...

  7. LINQ之路14:LINQ Operators之排序和分组(Ordering and Grouping)

    本篇继续LINQ Operators的介绍,这里要讨论的是LINQ中的排序和分组功能.LINQ的排序操作符有:OrderBy, OrderByDescending, ThenBy, 和ThenByDe ...

  8. LINQ分页和排序,skip和Take 用法

    LINQ分页和排序,skip和Take 用法 dbconn.BidRecord.OrderBy(p=>p.bid_id).ToList<BidRecord>().OrderBy(p ...

  9. ASP.NET EF(LINQ/Lambda查询)

    EF(EntityFrameWork) ORM(对象关系映射框架/数据持久化框架),根据实体对象操作数据表中数据的一种面向对象的操作框架,底层也是调用ADO.NET ASP.NET MVC 项目会自动 ...

随机推荐

  1. oracle树形结构全路径查询

    很实用的语法,父子节点通过id与patientId来关联,知道子节点的id,想查出所有的父节点: START WITH ...CONNECT BY ... SELECT T2.ORG_FULLNAME ...

  2. 【Pattern】-NO.150.Pattern.1 -【Pattern UML】

    Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of ...

  3. 【LeetCode每天一题】Rotate List(旋转链表)

    Given a linked list, rotate the list to the right by k places, where k is non-negative. Example 1: I ...

  4. cc.Mask. 纯代码拉伸遮罩

    var imgBoxInner = new cc.Node('imgBoxInner');var mask = imgBoxInner.addComponent(cc.Mask);mask.alpha ...

  5. U面经Prepare: Print Binary Tree With No Two Nodes Share The Same Column

    Give a binary tree, elegantly print it so that no two tree nodes share the same column. Requirement: ...

  6. href和src的区别(小计)

    1.Src 是指向物件的来源地址,请求src资源时会将其指向的资源下载并应用文档中 src的内容是页面上比不可少的一部分,是引入.在 img.script.iframe 等元素上使用. 2.href ...

  7. react16实战总结

    实战总结 react实战基础 遇到的一些坑 li里要带key值否则会警告,这个问题在vue中也存在, 考虑到虚拟DOM中diff,所以不要用index作为key值,而要用item. 2.immutab ...

  8. Install rapyuta client on Raspberry Pi

    Install rapyuta on client sudo git clone -b master https://github.com/cnsdytzy/-Rapyuta-installation ...

  9. 25 range打印100到0的连续整数

    使用range打印100,99,98,...0for i in range(100,-1,-1): print(i)

  10. LapSRN

    Deep Laplacian Pyramid Networks for Fast and Accurate Super-Resolution 解决问题: 1.bicubic预处理上下采样,计算复杂度高 ...