static void Main(string[] args)
{ List<Person> persons = new List<Person>
{
new Person {Id = },
new Person {Id = },
}; List<Student> students = new List<Student>
{
new Student {Id = , Name = "a", },
new Student {Id = , Name = "b", },
new Student {Id = , Name = "c", },
new Student {Id = , 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

Linq GroupJoin的更多相关文章

  1. Linq GroupJoin , Join

    static void Main(string[] args) { List<Person> persons = new List<Person> { }, }, }; Lis ...

  2. Linq GroupJoin 使用

    备忘: var data = BoshccEntities.Current.TB_MB_1 .GroupJoin(BoshccEntities.Current.TB_MB_2, o => o.H ...

  3. LINQ查询操作符之Select、Where、OrderBy、OrderByDescending、GroupBy、Join、GroupJoin及其对应的查询语法

    介绍    ·Select - Select选择:延迟    ·Where - Where查询:延迟    ·OrderBy - 按指定表达式对集合正序排序:延迟    ·OrderByDescend ...

  4. LINQ标准查询操作符(二)——Join、GroupJoin、GroupBy、Concat、

    四.联接操作符 联接是指将一个数据源对象与另一个数据源对象进行关联或者联合的操作.这两个数据源对象通过一个共同的值或者属性进行关联. LINQ有两个联接操作符:Join和GroupJoin. 1. J ...

  5. [C#] LINQ之Join与GroupJoin

    声明:本文为www.cnc6.cn原创,转载时请注明出处,谢谢! 一.编写Person与City类,如下: class Person { public int CityID { set; get; } ...

  6. Linq分组操作之GroupBy,GroupJoin扩展方法源码分析

    Linq分组操作之GroupBy,GroupJoin扩展方法源码分析 一. GroupBy 解释: 根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值. 查询表达式: var ...

  7. LINQ之 Join 与 GroupJoin

    声明:本文为www.cnc6.cn原创,转载时请注明出处,谢谢! 一.编写Person与City类,如下: class Person { public int CityID { set; get; } ...

  8. [C#] LINQ之SelectMany和GroupJoin

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  9. Linq in GroupBy GroupJoin

    还是上一份的代码例子: public class Person { public int ID { get; set; } public string Name { get; set; } publi ...

随机推荐

  1. C# 登录 存Session ,cookie并且验证只能一个人登录以及清session并且Cache

    string id = ConvertHelper.GetString(ds.Tables[0].Rows[0]["Uid"]);//用户ID string struserid = ...

  2. Hadoop体系架构简介

    今天跟一个朋友在讨论hadoop体系架构,从当下流行的Hadoop+HDFS+MapReduce+Hbase+Pig+Hive+Spark+Storm开始一直讲到HDFS的底层实现,MapReduce ...

  3. 简单谈谈js中Promise的用法

    首先先推荐一篇博文:http://blog.csdn.net/jasonzds/article/details/53717501 这篇博文很清晰的说明了Promise的用法,这里来简单总结一下: Pr ...

  4. 腾讯企业邮箱又一次隐藏了qq邮件列表的入口

    今天登陆腾讯企业邮箱,发现腾讯企业邮箱又一次隐藏了qq邮件列表的入口,很不方便操作, 我们切换到工具箱选项,然后随便点击里面的一个工具,比如:企业网盘,然后看浏览器地址栏的地址如下:http://ex ...

  5. 快速搭建CentOS+ASP.NET Core环境支持WebSocket

    环境:CentOS 7.x,.net core 2 以下.net core 2安装操作为官方方法.如果你使用Docker,那么更简单了,只需要docker pull microsoft/dotnet就 ...

  6. svn版本提交冲突问题解决详解

    svn冲突文件解决方法   工具/原料   svn客户端 方法/步骤   1 通过SVN客户端更新需要的文件,如果出现有感叹号的文件,找到出现感叹号的文件. 2 选择感叹号文件,即冲突文件,单击鼠标右 ...

  7. Java异常机制简介

    什么是异常? 异常一般是指程序在编译期没有问题,但是在程序运行期出现的错误,一个程序会因为出现异常而终止运行,也就是我们常说的挂掉,在多线程下,异常只会影响所在的线程,对其他线程没有影响. Java异 ...

  8. Maven-12: 插件解析机制

    1. 插件仓库 2. 插件的默认groupId 3. 解析插件版本 4. 解析插件前缀

  9. 【Bootstrap】 bootstrap-table表格组件

    [Bootstrap-table] 顾名思义,这个组件专注于bootstrap风格的表格的设计,并且提供了很多表格的基础和进阶的功能,给我们开发前端的表格省下很多力气. 本文主要参考这位博主的系列文章 ...

  10. C语言的文件读写操作函数小结

    一.文件打开 使用 fopen( ) 函数来创建一个新的文件或者打开一个已有的文件,这个调用会初始化类型 FILE 的一个对象,类型 FILE包含了所有用来控制流的必要的信息.函数原型为: FILE ...