zoukankan      html  css  js  c++  java
  • 入门day2

    public static void Main(string[] args)
            {
                // 语法 select element 选中返回的查询的结果集
                //select 不仅可以为数据源中的元素,还可以是该元素的不同的操作结果,包括
                //属性 方法 运算等
                Student[] stu = new Student[]{
                    new Student(){Name = "张三", Age=18, Sex=""},
                    new Student(){Name = "李四", Age=19, Sex=""},
                    new Student(){Name = "小花", Age=22, Sex=""},
                    new Student(){Name = "小明", Age=25, Sex=""}
                };
                //打印出年龄小于22 同学的姓名 只显示姓名
                var result = from p in stu where p.Age < 22 select p.Name;
                foreach (var r in result) {
                    Console.WriteLine(r); //张三, 李四
                }
                //语法 where element 判断条件 符合条件的元素
                //where
                //打印出 学生中名字为小明的 年龄
                var ret = from p1 in stu where p1.Name == "小明" select p1.Age;
                foreach (var r  in ret) {
                    Console.WriteLine(r); //25
                }
                //语法 orderby element sorttype 将指定元素进行排序 ascending desending 默认为ascending
                var ret1 = from p2 in stu orderby p2.Age descending select p2.Age;
                foreach (var r in ret1) {
                    Console.WriteLine(r); //25 22 19 18
                }
                //语法 group element by key 将指定元素根据指定key进行分组
                var ret2 = from p3 in stu group p3 by p3.Sex;
                foreach (var r in ret2) {
                    Console.WriteLine(r.Key); //打印组的名称
                    foreach (var r2  in r) {
                        Console.WriteLine(r2.Name); //打印组成员
                    }
                }
                // 语法 group element by key into tmpGrp 将分组后成员再次筛选 查询等等 不能直接通过select 进行连接
                var ret3 = from p4 in stu group p4 by p4.Age into tmp orderby tmp.Key descending select tmp;
                //通过性别进行分组,再次筛选出对应的名字;
                Console.WriteLine("============group element by key into");
                foreach (var r in ret3) {
                    Console.WriteLine(r.Key);
                    foreach (var r2 in r) {
                        Console.WriteLine(r2.Name);
                    }
                }
                // from from 联合查询
                Console.WriteLine("===========from from");
                Student[] stu1 = new Student[]{
                    new Student(){Name = "张三", Age=18, Sex=""},
                    new Student(){Name = "李四", Age=234, Sex=""},
                    new Student(){Name = "小花", Age=2342, Sex=""},
                    new Student(){Name = "小明", Age=25, Sex=""}
                };
                var ret4 = from p5 in stu from p6 in stu1 where p5.Age == p6.Age select p5.Name;
                foreach (var r in ret4) {
                    Console.WriteLine(r); //张三 小明
                }
                //理论上两个from 的数据源可以来自同一数据源的属性方法,也可以来自任意的数据对象
    
                Console.ReadKey(true);
            }
        }
        class Student{
            public string Name{get; set;}
            public int Age{get; set;}
            public string Sex{get; set;}
        }
  • 相关阅读:
    有关linux查看的命令 及本机yum创建
    linux系统命令1
    手机百度网盘加群方法
    百度网盘保存超限解决办法
    c#委托、泛型委托和匿名方法
    值类型和引用类型的总结
    SQL数据查询语句(一)
    c# Invoke和Begininvoke区别
    c#public、private、protected、internal、protected internal修饰符及访问权限
    C#之打印乘法表
  • 原文地址:https://www.cnblogs.com/alplf123/p/7894621.html
Copyright © 2011-2022 走看看