• C#进阶-Linq


    Linq:并非只针对于集合,它已作用于数据库,XML文件,WebService......但所有的Linq都使用统一的查询表达式:

    var excellent=from s in students     --students是一个集合,必须是IEnumerable或它的子类

                          where score>80        --所有能够返回bool值的表达式都可以作为where条件

                          select s                     --以select或group结尾

    Linq的查询表达式只是一个表达式,并不存储查询结果,直到被foreach调用(调用Tolist(),Toarry()也可强制立即执行);

    分组(group by):将具有相同属性的元素归为一组:

    var groupMajor=from m in Majors

                              group m by m.Teacher

    foreach(var item in groupMajor)

    {

         Consol.WriteLine(item.Key.Name);   --分组后才有Key(分组依据(Teacher))

         foreach(var i in item)                         --根据当前老师来取出对应的课程集合

        {

              Consol.WriteLine(i.Name);          --迭代出课程名字

         }

    投影(select):从结果集中取出/添加若干属性并重新组合成新的集合:

    var groupMajor=from m in Majors

                            group m by m.Teacher  --根据老师分组

                             into tm                          --给结果集命名

                             select new Dictionary<string,int>    --利用投影

                             {

                                   gm.Key.Name,           --老师名字

                                   gm.count()                 --每个老师上教了几门课程

                             }

    如果这篇文章,对你有帮助,请点击关注,我会持续更新......
  • 相关阅读:
    霓虹灯牌 V0.3已发布
    ACSL比赛的鸡肋解释器???
    Linux和Aix系统shell获取IP地址
    openWrt编译环境feeds update a
    openWrt(LEDE)下载包目录dl目录新旧差异脚本备份,阿里百度更新下载连接
    20年5月面试汇总
    Redis++:(雪崩、击穿、穿透) 那点事
    Redis++:为什么Redis 是单线程却能支撑高并发?
    Java++:HikariCP连接池参数解释
    我来谈谈“人工智能”这个词给我带来了哪些想法
  • 原文地址:https://www.cnblogs.com/-GoFurther/p/13739386.html
Copyright © 2020-2023  润新知