• LINQ基础——FROM子句


    LINQ基础——FROM子句

    一、简单FROM子句

    获取数据源:

     var queryAllCustomers =
            from cust in Customers
            select cust; 

    分析:

    查询表达式必须以from子句开头
    例子中cust是范围变量,范围变量类似于foreach循环中的迭代变量,但在查询表达式中,实际上不发生迭代。执行查询时,范围变量将用作对Customers中的每个后续元素的引用。因为编译器可以推断cust的类型,所以不必显示指定此类型。
    Customers是数据源,实现了IEnumerable或IEnumerable(T)或其派生接口的

    二、复合FROM子句

    查询出成绩有90分以上的学生,得到他们的名字和成绩

       //数据源
     IList<Student> students = new List<Student>
    {
        new Student{ Name="Kevin", Score=new List<int>{89,93,88,78}},
        new Student{ Name="Jackie",Score=new List<int>{92,87,83,91}},
        new Student{ Name="Helen",Score=new List<int>{53,76,72,62}}
    };
                //所有的Linq查询操作都由以下三个不同的操作组成:
                //1.获得数据源
                //2.创建查询
                //3.执行查询
    
                //使用复合from子句查询命令
                var getStudent =
                        from student in students
                        from score in student.Score
                        where score > 90
                        select new { Name = student.Name, Score = score };
    
                foreach (var st in getStudent)
                {
                    Console.WriteLine("NAME:{0},SCORE:{1}",st.Name,st.Score);
                }

     分析:

    我们可以看到学生对象中有个Score属性,Score属性本身就是List集合,这时候我们就要用到复合from子句进行查询了。首先遍历学生对象集合中的每个学生对象,然后在用另一个from子句,对每个学生对象中的Score属性进行遍历,筛选出含有90分以上的学生信息进行返回。


    技术的发展日新月异,随着时间推移,无法保证本博客所有内容的正确性。如有误导,请大家见谅,欢迎评论区指正!
    我创建了一个.NET开发交流群,用于分享学习心得和讨论相关技术难题。欢迎有兴趣的小伙伴扫码入群,相互学习!

  • 相关阅读:
    virtualbox 5.0.6 在debian jessie amd64启动报错
    golang中的检验hash
    删除多余的自编译的内核、mysql连接不了的问题
    scoket常用函数简单介绍
    我的bootstrap学习
    TCP/IP四层模型和OSI七层模型
    五种调试方法
    实现对一个8bit数据的指定位的置0或者置1操作,并保持其他位不变。
    如何测试一个杯子
    黑白盒测试及区别、测试用例的设计(测试小笔记)
  • 原文地址:https://www.cnblogs.com/wml-it/p/14836544.html
Copyright © 2020-2023  润新知