zoukankan      html  css  js  c++  java
  • 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开发交流群,用于分享学习心得和讨论相关技术难题。欢迎有兴趣的小伙伴扫码入群,相互学习!

  • 相关阅读:
    inotifywait 目录或文件的监控
    outlook邮件中样式问题
    IE8兼容问题
    12px以下字体显示问题
    box-shadow
    cropper.js图片裁剪
    利用vcard和qrcode.js生成二维码导入联系人
    使用link rel="shortcut icon"为网页标题加图标
    将input或textarea设置为disabled的样式问题
    img没有src属性时自动出现边框
  • 原文地址:https://www.cnblogs.com/wml-it/p/14836544.html
Copyright © 2011-2022 走看看