LinqToSQL4
2024-09-01 20:07:22
Join和GroupJoin的区别
List<Atable> ainfo = new List<Atable>
{
new Atable{ AId=1, AName="A1", AAge="11" },
new Atable{ AId=2, AName="A2", AAge="12"},
new Atable{ AId=3, AName="A3",AAge="13"}
};
List<Btable> binfo = new List<Btable>()
{
new Btable{ BId=1, BName="B1", BAge="81" },
new Btable{ BId=3, BName="B3", BAge="83"},
new Btable{ BId=5, BName="B5",BAge="85"}
};
Join
官方释义:基于匹配键对两个序列的元素进行关联。使用默认的相等比较器对键进行比较。
这个与数据库中的INNER JOIN很类似,就是使用一个键(TKey)将两个集合关联起来,并对这两个集合的元素进行选择,作为结果输出。
var info = ainfo.Join(binfo, //需要连接的数据源
a => a.AId,
b => b.BId,
(a, b) => new { a.AName, b.BName }); //获取自己定义类型的集合。
foreach (var item in info)
{
Console.WriteLine(item.AName + item.BName);
}
GroupJoin
官方释义: 基于键相等对两个序列的元素进行关联并对结果进行分组。使用默认的相等比较器对键进行比较。
这个与数据库的LEFT OUTER JOIN很类似。与Join的区别就是:GroupJoin内resultSelector的输入参数从TInner单个元素编程IEnumerable<TInner>元素集合,其他保持不变。用法与Join差不多,它也是基于TOuter.TKey及TInner.TKey的连接。
var info = ainfo.GroupJoin(binfo, //需要连接的数据源
Atable => Atable.AId, //通过AId指定数据源
Btable => Btable.BId, //通过BId指定数据源
(a, b) => new
{
a.AName,
binfos = b
}//创建结果相同的数据
).ToList(); foreach (var item in info)
{
foreach (var b in item.binfos)
{
Console.WriteLine(item.AName + "\t" + b.BName);
} }
最新文章
- viewPager + fragment
- [No00000C]Word快捷键大全 Word2013/2010/2007/2003常用快捷键大全
- POJ 3259 Wormholes (判负环)
- Oracle数据库安装及配置(一)
- javaScript中的单引号与双引号
- Js中获取frames中的元素
- Spring3.0 入门进阶(三):基于XML方式的AOP使用
- C/C++动态分配与释放内存的区别详细解析
- 实践过配置成功的VNC安装配置
- Android App 沉浸式状态栏解决方案
- 07-C语言流程控制if、switch
- python 启动简单web服务器
- Android图像篇
- 离线安装gcc(CentOS7)
- Scratch2.0例—接苹果
- 福州大学软件1715|W班-助教卞倩虹个人简介
- [LeetCode] Output Contest Matches 输出比赛匹配对
- RN开发第二天
- git 命令提交文件
- 【Android基础】利用Intent在Activity之间传递数据
热门文章
- Sublime Markdown预览插件安装流程
- docker常用指令
- mongodb 数据更新命令、操作符
- vue 调用微信支付方法
- tortoiseGit did not exit cleanly (exit code 128)
- Qt编写安防视频监控系统8-双击节点
- [Scikit-learn] Dynamic Bayesian Network - Conditional Random Field
- JAVA 基础编程练习题18 【程序 18 乒乓球赛】
- 100% 加速 WebSAMS 3.0 (轉載)
- OpenGL(6)——坐标系