zoukankan      html  css  js  c++  java
  • 标准查询运算符

            /// <summary>
            /// 8.2 标准查询运算符 - Where 查询方法
            /// </summary>
            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()));
            }
    
            /// <summary>
            /// 8.3 标准查询运算符 - Select 投射方法(返回一个 新的集合)
            /// </summary>
            static void SQOSelect()
            {
                List<C01Dog> list = GetDogList();
    
                List<C02SmallDog> listNew = list.Select(d => new C02SmallDog() { Name = d.Name }).ToList();
            }
            /// <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()));
            }
            /// <summary>
            /// 8.5 标准查询运算符 - Join 连接集合
            /// </summary>
            static void TestJoin()
            {
                List<C01Dog> listDog = GetDogList();
                List<C02DogToy> listToy = GetDogToyList();
    
                //把 Dog集合 与 Toy集合 连接生成一个新的集合
                //连接查询                                on d.ID  =    t.DogID
                //返回的结果是一个 匿名类集合,程序员可以手动 的控制 返回集合里 使用 联合查询两个集合 里的 的哪些属性
                var listJoined = listDog.Join(listToy, d => d.ID, t => t.DogID, (d, t) => new { DogId = d.ID, DogName = d.Name, ToyName = t.ToyName }).ToList();
    
                listJoined.ForEach(a => Console.WriteLine(a.ToString()));
    
            }
            /// <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("-----------------------------------------");
                }
            }
            /// <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();
            }
  • 相关阅读:
    配置DHCP Snooping防止DHCP Server仿冒者攻击示例
    初识kbmmw 的多语言支持
    kbmmw 5.16.0 发布
    sql去除注释
    markdown写ppt
    Kafka流处理内幕详解
    【转载】matplotlib.pyplot的使用总结大全(入门加进阶)
    魔方第三层旋转公式
    自动化机器学习方面的开源框架和商业服务列表
    进阶版OFA算法:CompOFA: Compound Once-for-all Networks
  • 原文地址:https://www.cnblogs.com/dotnetmvc/p/3674948.html
Copyright © 2011-2022 走看看