首页 > 其他 > 详细

Linq

时间:2020-04-27 00:02:40      阅读:62      评论:0      收藏:0      [点我收藏+]
技术分享图片
   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}");
                }
            }

        }

未完====

 

  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}");                }            }
        }

Linq

原文:https://www.cnblogs.com/yijieyufu/p/12783179.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!