zoukankan      html  css  js  c++  java
  • Linq

       private List<Student> GetStudentList()
            {
                #region 初始化数据
                List<Student> studentList = new List<Student>()
                {
                    new Student()
                    {
                        Id=1,
                        Name="赵亮",
                        ClassId=2,
                        Age=35
                    },
                    new Student()
                    {
                        Id=1,
                        Name="再努力一点",
                        ClassId=2,
                        Age=23
                    },
                     new Student()
                    {
                        Id=1,
                        Name="王炸",
                        ClassId=2,
                        Age=27
                    },
                     new Student()
                    {
                        Id=1,
                        Name="疯子科学家",
                        ClassId=2,
                        Age=26
                    },
                    new Student()
                    {
                        Id=1,
                        Name="",
                        ClassId=2,
                        Age=25
                    },
                    new Student()
                    {
                        Id=1,
                        Name="黑骑士",
                        ClassId=2,
                        Age=24
                    },
                    new Student()
                    {
                        Id=1,
                        Name="故乡的风",
                        ClassId=2,
                        Age=21
                    },
                     new Student()
                    {
                        Id=1,
                        Name="晴天",
                        ClassId=2,
                        Age=22
                    },
                     new Student()
                    {
                        Id=1,
                        Name="旭光",
                        ClassId=2,
                        Age=34
                    },
                     new Student()
                    {
                        Id=1,
                        Name="oldkwok",
                        ClassId=2,
                        Age=30
                    },
                    new Student()
                    {
                        Id=1,
                        Name="乐儿",
                        ClassId=2,
                        Age=30
                    },
                    new Student()
                    {
                        Id=1,
                        Name="暴风轻语",
                        ClassId=2,
                        Age=30
                    },
                    new Student()
                    {
                        Id=1,
                        Name="一个人的孤单",
                        ClassId=2,
                        Age=28
                    },
                    new Student()
                    {
                        Id=1,
                        Name="小张",
                        ClassId=2,
                        Age=30
                    },
                     new Student()
                    {
                        Id=3,
                        Name="阿亮",
                        ClassId=3,
                        Age=30
                    },
                      new Student()
                    {
                        Id=4,
                        Name="37度",
                        ClassId=4,
                        Age=30
                    }
                      ,
                      new Student()
                    {
                        Id=4,
                        Name="关耳",
                        ClassId=4,
                        Age=30
                    }
                      ,
                      new Student()
                    {
                        Id=4,
                        Name="耳机侠",
                        ClassId=4,
                        Age=30
                    },
                      new Student()
                    {
                        Id=4,
                        Name="Wheat",
                        ClassId=4,
                        Age=30
                    },
                      new Student()
                    {
                        Id=4,
                        Name="Heaven",
                        ClassId=4,
                        Age=22
                    },
                      new Student()
                    {
                        Id=4,
                        Name="等待你的微笑",
                        ClassId=4,
                        Age=23
                    },
                      new Student()
                    {
                        Id=4,
                        Name="",
                        ClassId=4,
                        Age=25
                    },
                      new Student()
                    {
                        Id=4,
                        Name="混无痕",
                        ClassId=4,
                        Age=26
                    },
                      new Student()
                    {
                        Id=4,
                        Name="37度",
                        ClassId=4,
                        Age=28
                    },
                      new Student()
                    {
                        Id=4,
                        Name="新的世界",
                        ClassId=4,
                        Age=30
                    },
                      new Student()
                    {
                        Id=4,
                        Name="Rui",
                        ClassId=4,
                        Age=30
                    },
                      new Student()
                    {
                        Id=4,
                        Name="",
                        ClassId=4,
                        Age=30
                    },
                      new Student()
                    {
                        Id=4,
                        Name="肩膀",
                        ClassId=4,
                        Age=30
                    },
                      new Student()
                    {
                        Id=4,
                        Name="孤独的根号三",
                        ClassId=4,
                        Age=30
                    }
                };
                return studentList;
                #endregion
            }
    View Code
     List<Class> classList = new List<Class>()
                    {
                        new Class()
                        {
                            Id=1,
                            ClassName="初级班"
                        },
                        new Class()
                        {
                            Id=2,
                            ClassName="高级班"
                        },
                        new Class()
                        {
                            Id=3,
                            ClassName="微信小程序"
                        },
                    };
    View Code

     返回 studentList ,classList

    造点数据:

    不喜欢写废话看方法吧 主要的类型的LINQ都有

      public void showlist()
            {
                //找小于AGE<30的 通用方法
                List<Student> studentList = this.GetStudentList();
                var list = new List<Student>();
                foreach (var item in studentList)
                {
                    if (item.Age < 30)
                    {
                        list.Add(item);
                        Console.WriteLine($"ID{item.Name} Age{item.Age}");
                    }
                }
                Console.WriteLine("-----------------------------");
    
    
    
                //表达式类型
                //只要能满足扩展方法的参数即可
    
                var list3 = studentList.Where<Student>(new Func<Student, bool>(s => s.Age < 30));
                var list1 = studentList.Where(s => s.Age < 30);
                foreach (var item in list1)
                {
                    Console.WriteLine($"ID{item.Name},AGE{item.Age}");
    
                }
                Console.WriteLine("-----------------------------");
    
                var list2 = from s in studentList
                            where s.Age < 30
                            select s;
    
                foreach (var item in list2)
                {
                    //   Console.WriteLine($"NAME{item.Name},Age{item.Age}");
                }
    
                Console.WriteLine("----------------------------------");
    
                var result = Extensionmethods.MethoWhere(studentList, new Func<Student, bool>(s => s.Name.Length > 2));
    
                foreach (var item in result)
                {
                    //  Console.WriteLine(item.Name.Length.ToString());
                }
    
                {
                    List<int> ts = new List<int>() { 1213, 123, 2, 4, 3, 24, 12 }.MethoWhere(s => s < 10);
                    foreach (var item in ts)
                    {
                        Console.WriteLine(item);
                    }
                }
    
    
    
                {
                    Console.WriteLine("================投影=================");
                    var list4 = studentList.Where<Student>(s => s.Age < 30).Select(S => new
                    {
                        IdName = S.Name + S.Id,
                        Claaid = S.Age + S.ClassId
                    });
                    foreach (var item in list4)
                    {
                        Console.WriteLine($"{item.IdName},{item.Claaid}");
                    }
    
                    Console.WriteLine("=================表达式==================");
                    var list5 = from s in studentList
                                where s.Age < 30
                                select new
                                {
                                    IdName = s.Name + s.Id,
                                    Claaid = s.Age + s.ClassId
                                };
                    foreach (var item in list5)
                    {
                        Console.WriteLine($"{item.IdName},{item.Claaid}");
                    }
    
    
                    Console.WriteLine("================分组=================");
                    var list6 = studentList.GroupBy(s => s.Age).
                    Select(s => new
                    {
                        key = s.Key,
                        MaxAge = s.Max(t => t.Age)
                    });
                    foreach (var item in list6)
                    {
                        Console.WriteLine($"{item.key},{item.MaxAge}");
                    }
    
                }
    
                Console.WriteLine("================ 表达式分组=================");
                var list7 = from s in studentList
                            where s.Age < 30
                            group s by s.ClassId into sg
                            select new
                            {
                                key = sg.Key,
                                MaxAge = sg.Max(k => sg.Key)
                            };
                foreach (var item in list7)
                {
                    Console.WriteLine($"{item.key},{item.MaxAge}");
                }
    
    
                Console.WriteLine("--------------升级版  group s by s.ClassId into sg-----------");
    
                var list8 = from s in studentList
                            where s.Age < 30
                            group s by s.ClassId into sg
                            select sg;
                foreach (var ls in list8)
                {
                    Console.WriteLine($"{ls.Key}");
                    //实现了IEnumerable  都可以foreach
                    foreach (var item in ls)
                    {
                        Console.WriteLine($"{item.Name}");
                    }
                }
    
    
                Console.WriteLine("------------------------连表--------------------");
                //LINQ不能用= 只能用Equals
                var list9 = from s in studentList join c in classList
                            on s.ClassId equals c.Id
                            select new
                            {
                                Name = s.Name,
                                CalssName = c.ClassName
                            };
                foreach (var item in list9)
                {
                    Console.WriteLine($"{item.Name},{item.CalssName}");
                }
    
    
                Console.WriteLine("=======================方法式连表==================");
                {
                    var list20 = studentList.Join(classList, s => s.ClassId, c =>c.Id,(s,c)=>new 
                    {
                        Name = s.Name,
                        CalssName = c.ClassName
                    });
                    foreach (var item in list20)
                    {
                        Console.WriteLine($"{item.Name},{item.CalssName}");
                    }
                }
    
            }

    未完====

  • 相关阅读:
    Git官方推荐用书
    二叉树-补习
    POJ 2251 Dungeon Master(三维BFS)
    Codeforces 675C Money Transfers (思维题)
    HDU 1195 Open the Lock(BFS)
    HDU 1010 Tempter of the Bone(DFS+剪枝)
    POJ 1426 Find The Multiple(DFS,BFS)
    POJ 3216 Prime Path (BFS)
    POJ 3278 Catch that cow(BFS)
    UVa 572 Oil Deposits(简单DFS)
  • 原文地址:https://www.cnblogs.com/yijieyufu/p/12783179.html
Copyright © 2011-2022 走看看