zoukankan      html  css  js  c++  java
  • Linq表达式 连接查询

    准备两个类

     class Person
        {
            public string Name { set; get; }
            public int Age { set; get; }
         
        }
        class Dog
        {
            public string Name { get; set; }
            public string Master { get; set; }
        }

    插入数据

     List<Person> personList;
            List<Dog> dogList;
            public Form1()
            {
                InitializeComponent();
                personList = new List<Person>()
              {
                  new Person (){ Name="Alex",Age=12},
                  new Person (){ Name="Peter",Age=16},
                  new Person (){ Name="Zack",Age=12},
                  new Person (){ Name="TJ",Age=13},
              };
                dogList = new List<Dog>()
                {
                    new Dog (){ Name="dog1",Master="Alex"},
                    new Dog (){ Name="dog2",Master="TJ"},
                    new Dog (){ Name="dog3",Master="Alex"}
                };
            }

    内连接

      private void button1_Click(object sender, EventArgs e)
            {
                //内连接
                dataGridView1.DataSource = (from people in personList
                                            join
                                dogs in dogList on people.Name equals dogs.Master
                                            select new
                                            {
                                                Master = people.Name,
                                                Dod = dogs.Name
                                            }).ToList();
           
            }

    分组连接

     private void button1_Click(object sender, EventArgs e)
            {
    //分组连接
                dataGridView1.DataSource = (from people in personList
                                        join
    
                            dogs in dogList on people.Name equals dogs.Master into gc
                                        from gci in gc
                                        select new
                                            {
                                                Master = people.Name,
                                                Dod = gci.Name
        }).ToList();
    
            }

    左外连接

      private void button1_Click(object sender, EventArgs e)
            {     //左外连接
                dataGridView1.DataSource = (from people in personList
                                            join
                                dogs in dogList on people.Name equals dogs.Master into gc
                                            from gci in gc.DefaultIfEmpty()
                                            select new
                                            {
                                                Master = people.Name,
                                                Dod = (gci==null?"NULL":gci.Name)
                                            }).ToList();
            }

  • 相关阅读:
    Python中的垃圾回收机制
    一个很好的复习网站
    数据结构与算法 python语言描述
    数据结构与算法学习链接
    [转] 什么是WSGI
    【转】HTTP协议详解
    【转】Android HTTP协议
    Android获取本机IP地址
    Andrid 多线程下载
    Android 应用程序启动过程源代码分析
  • 原文地址:https://www.cnblogs.com/dangnianxiaoqingxin/p/13072607.html
Copyright © 2011-2022 走看看