linq to list进行排序

第二种方法:linq to list进行排序

运用linq实现对list排序,在实体类定义的时候就不需用实现IComparable接口,调用方式如下:

  private static void ReadT(string str) {
      List<Info> infoList = new List<Info>();  
      infoList.Add( 
      new Info() { Id = 1, Name = "woft" });
      infoList.Add(new Info() { Id=3,Name="rose"}); 
      infoList.Add(new Info() { Id = 2, Name = "abc" }); 
      Console.WriteLine("ReadT*********************"); 
      IEnumerable<Info> query = null; 
      query = from items in infoList orderby items.Id select items;
      foreach (var item in query) 
      {
                      Console.WriteLine(item.Id+":"+item.Name);            
       }     
  }

 

urList = (from u in urList
                      orderby u.toolingNo_C
                      select u).Skip(pageSize * (pageNum - 1)).Take(pageSize);

OrderBy 是排序(后面是条件)然后要查询所有的,在所有的数据中在查询你要分页的数据,skip是在分页在前有多少条数据,也就是在当前页数据之前的数据总和,(跳过序列中指定数量的元素,然后返回剩余的元素。)pageSize*(pageIndex-1),Take 是返回多少条数据,也就是pageSize!

 

很多学习Linq的朋友肯定有自己所不同的方法,考虑这个问题我所想到的是

用Take(),Skip(),TakeWhile(),SkipUntil()中的方法来实现

首先看Take()是否可用

Take方法的作用是从结果中取固定数量的值,

MydbDataContext mydb=new MydbDataContext("server=.;database=mydb");

var query=from p in mydb.Products
               orderby p.id descending
                select p;//取出Products中所用的项按降序排列
如果直接用take()

var q=query.take(n) 这样只能取出前条n记录,但是还是让我们看到了分页的曙光,还是还有个skip吗,skip可以取出除去满足条件的剩下的记录。如果我们要把数据以每页pagesize的数量来进行分页,很简单,很skip(pagersize*pagenum)然后在剩下的记录中take(pagesize)不就得到了想要的数据了么。

 

varq=query.skip(pagesize*pagenum).take(pagesize) 就这么简单。

转载于:https://my.oschina.net/momomo1987/blog/646154

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值