zoukankan      html  css  js  c++  java
  • Linq GroupJoin , Join

            static void Main(string[] args)
            {         
    
                List<Person> persons = new List<Person>
                {
                    new Person {Id = 1 },
                    new Person {Id = 2 },
                };
    
                List<Student> students = new List<Student>
                {
                    new Student {Id = 1, Name = "a", },
                    new Student {Id = 1, Name = "b", },
                    new Student {Id = 2, Name = "c", },
                    new Student {Id = 2, Name = "d", },
                };
    
                {
                    //Lambda 写法
                    var temp = persons.GroupJoin(students, p => p.Id, s => s.Id, (p, s) => new Person
                    {
                        Id = p.Id,
                        Students = s.ToList()
                    }).ToList();
                }
    
                {
                    //Linq 写法
                    var temp = (from p in persons
                                join s in students
                                    on p.Id equals s.Id
                                    into ss
                                select new Person { Id = p.Id, Students = ss.ToList() }).ToList();
    
                }
    
                Console.ReadKey();
            }
    
        public class Person
        {
            public int Id { get; set; }
            public List<Student> Students { get; set; }
        }
    
        public class Student
        {
            public int Id { get; set; }
    
            public string Name { get; set; }
        }

    GroupJoin 相当于数据库的 Left Join

    Join 相当于数据库的 Inner Join

  • 相关阅读:
    C语言学习第八章
    C语言学习第七章
    C语言学习第六章
    C语言学习第五章
    ssh的bug
    Oracel 用户管理
    初识Kettle
    IDEA使用MAVEN时自动创建骨架卡的设置
    2017/6/12 JSON
    DDL,DML,DQL
  • 原文地址:https://www.cnblogs.com/refuge/p/8213907.html
Copyright © 2011-2022 走看看