标准查询运算符(SQO)

  #region 8.4 标准查询运算符 - Order 排序方法
        /// <summary>
        /// 8.4 标准查询运算符 - Order 排序方法
        /// </summary>
        static void SQOOrder()
        {
            List<C01Dog> list = GetDogList();
            //8.4.1 升序排列
            //List<C01Dog> listSorted = list.OrderBy(d => d.Age).ToList();
            //8.4.2 降序排列
            //List<C01Dog> listSorted = list.OrderByDescending(d => d.Age).ToList();
            //8.4.3 多条件排序
            //List<C01Dog> listSorted = list.OrderBy(d => d.Age).ThenBy(d => d.ID).ToList();
            //8.4.4 多条件倒序
            List<C01Dog> listSorted = list.OrderBy(d => d.Age).ThenByDescending(d => d.ID).ToList();

            listSorted.ForEach(d => Console.WriteLine(d.ToString()));
        }
        #endregion

标准查询运算符: 定义在 System.Linq.Enumerable类中的50多个为IEnumerable<T>准备的扩展方法,这些方法用来对它操作的集合进行查询筛选.

 static void SQOWhere()
        {
            List<C01Dog> list = GetDogList();
            //在集合中 筛选出 青壮年 公狗们
            List<C01Dog> listDog = list.Where(d => d.Gender == true && d.Age > 3 && d.Age < 39).ToList();
            listDog.ForEach(d => Console.WriteLine(d.ToString()));
        } 

  #region 8.3 标准查询运算符 - Select 投射方法(返回一个 新的集合)
        /// <summary>
        /// 8.3 标准查询运算符 - Select 投射方法(返回一个 新的集合)
        /// </summary>
        static void SQOSelect()
        {
            List<C01Dog> list = GetDogList();

            List<C02SmallDog> listNew = list.Select(d => new C02SmallDog() { Name = d.Name }).ToList();
        }
        #endregion
  
 #region 8.6 标准查询运算符 - GroupBy 为集合元素分组        /// <summary>       
 /// 8.6 标准查询运算符 - GroupBy 为集合元素分组        /// </summary>      
  static void SQOGroupBy()        {            List<C01Dog> list = GetDogList();            //按照集合中 狗的 性别 分组           // IEnumerable<IGrouping<bool, C01Dog>> it= list.GroupBy(d => d.Gender);            //按照集合中 狗的 姓名 分组            var it = list.GroupBy(d=>d.Name);            //将 小组迭代器 转成 小组 集合            IList<IGrouping<string, C01Dog>> listGroup = it.ToList();            //遍历 小组            foreach (IGrouping<string, C01Dog> group in listGroup)            {                //输出 小组 的 分组条件                Console.WriteLine("小组:" + group.Key);                //遍历 小组里 所有的 元素                foreach (C01Dog item in group)                {                    Console.WriteLine(item.ToString());                }                          Console.WriteLine("-----------------------------------------");            }        } 
        #endregion


     #region 8.7 标准查询运算符 - Skip + Take 分页数据
        /// <summary>
        /// 8.7 标准查询运算符 - Skip + Take 分页数据
        /// </summary>
        static void SQOPagedList()
        {
            List<C01Dog> list = GetDogList().OrderBy(d => d.ID).ToList();
            //假设 每页 2行

            //获取第一页 数据
            //var pageOne = list.Skip(0).Take(2);
            var pageOne = GetPagedListByIndex(list,1);
            Console.WriteLine("第一页 数据:");
            pageOne.ForEach(i => Console.WriteLine(i.ToString()));

            //获取第二页 数据
            //var pageTwo = list.Skip(2).Take(2);
            var pageTwo = GetPagedListByIndex(list,2);
            Console.WriteLine("第二页 数据:");
            pageTwo.ForEach(i => Console.WriteLine(i.ToString()));
        }

        static List<C01Dog> GetPagedListByIndex(List<C01Dog> list,int pageIndex)
        {
            int pageSize = 2;
            return list.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
        }
        #endregion


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值