zoukankan      html  css  js  c++  java
  • LINQ笔记-复杂案例

    实体:

        public class Person
        {
            public string Name { get; set; }
            public int CompanyID { get; set; }
        }
        public class Company
        {
            public int ID { get; set; }
        }
    List<Company> companyList = new List<Company> {
                    new Company{ ID=1},
                    new Company{ ID=2},
                    new Company{ ID=3}
                };
                List<Person> personList = new List<Person> {
                    new Person{ CompanyID=1,Name="zhangsan"},
                    new Person{ CompanyID=1,Name="lisi"},
                    new Person{ CompanyID=2,Name="wangwu"}
                };

    内连接:

    var list1 = from c in companyList
                           join p in personList on c.ID equals p.CompanyID
                           select new { CompanyID = c.ID, PersonName = p.Name };

    左连接:personList的数据放入临时变量personTempList中,并调用DefaultIfEmpty(),意思是为空就使用默认值

    var list1 = from c in companyList
                           join p in personList on c.ID equals p.CompanyID into personTempList
                           from pTemp in personTempList.DefaultIfEmpty()
                           select new { CompanyID = c.ID, PersonName = pTemp?.Name };

    也可以指定默认值:

    var list1 = from c in companyList
                           join p in personList on c.ID equals p.CompanyID into personTempList
                           from pTemp in personTempList.DefaultIfEmpty(new Person { Name="DefaultName"})
                           select new { CompanyID = c.ID, PersonName = pTemp.Name };

    未完待续...

  • 相关阅读:
    【ExtJS】关于自定义组件(一)
    【ExtJS】关于自定义组件
    特殊的css样式
    样式表笔记
    html 表单笔记
    图片热点和网页内嵌随笔
    快速网页
    HTML基础和表格
    HTML基础
    递归算法 笔记
  • 原文地址:https://www.cnblogs.com/fanfan-90/p/12112289.html
Copyright © 2011-2022 走看看