Linq SelectMany 交叉连接
示例一
internal class Program
{
private static void Main(string[] args)
{
List<Teacher> teachers = new List<Teacher>
{
new Teacher("a",new List<Student1>{ new Student1(),new Student1(),new Student1() }),
new Teacher("b",new List<Student1>{ new Student1(),new Student1(),new Student1() }),
new Teacher("c",new List<Student1>{ new Student1(),new Student1(),new Student1() }),
new Teacher("d",new List<Student1>{ new Student1(),new Student1(),new Student1() }),
new Teacher("e",new List<Student1>{ new Student1(),new Student1(),new Student1() }),
new Teacher("f",new List<Student1>{ new Student1(),new Student1(),new Student1() }),
new Teacher("g",new List<Student1>{ new Student1(),new Student1(),new Student1() })
}; IEnumerable<Student1> t1 = teachers.SelectMany(s => s.Students.Where(w => w.Score < ));
t1.ToList().ForEach(f => Console.WriteLine(f)); Console.Read();
}
} internal class Student1
{
public int Score { get; set; } public Student1(int score)
{
Score = score;
} public override string ToString()
{
return $"studen1 : {Score}";
}
} internal class Teacher
{
public string Name { get; set; } public List<Student1> Students; public Teacher(string order, List<Student1> students)
{
Name = order;
Students = students;
}
}
示例二
var query = from left in Enumerable.Range(, )
from right in Enumerable.Range(, left)
select new { left, right }; var result = Enumerable.Range(, ).SelectMany(left => Enumerable.Range(, left), (left, right) => new { left, right }); foreach (var item in result)
{
Console.WriteLine(item);
}
Linq SelectMany 交叉连接的更多相关文章
- C# LINQ学习笔记二:LINQ标准查询操作概述
本笔记摘抄自:https://www.cnblogs.com/liqingwen/p/5801249.html,记录一下学习过程以备后续查用. “标准查询运算符”是组成语言集成查询 (LINQ) 模式 ...
- (25)ASP.NET Core EF查询(复杂查询运算符、原生SQL查询、异步查询)
1.复杂查询运算符 在生产场景中,我们经常用到LINQ运算符进行查询获取数据,现在我们就来了解下生产场景经常出现几种复杂查询运算符. 1.1联接(INNER JOIN) 借助LINQ Join运算符, ...
- Linq连接查询之左连接、右连接、内连接、全连接、交叉连接、Union合并、Concat连接、Intersect相交、Except与非查询
内连接查询 内连接与SqL中inner join一样,即找出两个序列的交集 Model1Container model = new Model1Container(); //内连接 var query ...
- SQL&&LINQ:左(外)连接,右(外)连接,内连接,完全连接,交叉连接,多对多连接
SQL: 外连接和内连接: 左连接或左外连接:包含左边的表的所有行,如果右边表中的某行没有匹配,该行内容为空(NULL) --outer jion:left join or left outer jo ...
- linq里的select和selectmany操作
Select() 和 SelectMany() 的工作都是依据源值生成一个或多个结果值.Select() 为每个源值生成一个结果值.因此,总体结果是一个与源集合具有相同元素数目的集合.与之相反,Sel ...
- linq读书笔记3-操作符之select与selectmany
linq对数据的查询方式的表达形式主要有两种: var demo =from p in pList where p.id=*** select p; var demo =pList.where(p=& ...
- Linq常用List操作总结,ForEach、分页、交并集、去重、SelectMany等
/* 以下围绕Person类实现,Person类只有Name和Age两个属性 一.List<T>排序 1.1 List<T>提供了很多排序方法,sort(),Orderby() ...
- [C#] LINQ之SelectMany
声明:本文为www.cnc6.cn原创,转载时请注明出处,谢谢! 一.第一种用法: public static IEnumerable<TResult> SelectMany<TSo ...
- LINQ操作符二:SelectMany
SelectMany操作符提供了将多个from子句组合起来的功能,相当于数据库中的多表连接查询,它将每个对象的结果合并成单个序列. 示例: student类: using System; using ...
随机推荐
- Infinite Fraction Path HDU 6223 2017沈阳区域赛G题题解
题意:给你一个字符串s,找到满足条件(s[i]的下一个字符是s[(i*i+1)%n])的最大字典序的长度为n的串. 思路:类似后缀数组,每次倍增来对以i开头的字符串排序,复杂度O(nlogn).代码很 ...
- JS报表打印分页CSS
在调用window.print()时,可以实现打印效果,但内容太多时要进行分页打印. 在样式中有规定几个打印的样式 page-break-before和page-break-after CSS属性并不 ...
- css样式加载顺序
css样式加载顺序: A: id选择器指定的样式 > 类选择器指定的样式 > 元素类型选择器指定的样式 B: 如果要让某个样式的优先级变高,可以使用!important来指定: .clas ...
- 使用git工具快速push项目到github(精简)
Dear Weber ,相信有很多刚开始接触前端的程序猿,在刚接触到git工具传项目到github上时会遇到一些问题,那么下面的话呢,我就整理一下一个大致的思路提供给大家参考: 工具:git (自行下 ...
- SparkHiveContext和直接Spark读取hdfs上文件然后再分析效果区别
最近用spark在集群上验证一个算法的问题,数据量大概是一天P级的,使用hiveContext查询之后再调用算法进行读取效果很慢,大概需要二十多个小时,一个查询将近半个小时,代码大概如下: try: ...
- Linux设备驱动故障定位指引与实例
Linux设备驱动故障定位指引 Linux设备驱动种类繁多,涉及的知识点多,想写一个通用的故障定位方法指引,是个难度颇大且不容易做好的工作.限于笔者的经验,难以避免存在疏漏之处,欢迎大家留言指正补充. ...
- SpringBoot工作机制
1:前言 回顾探索Spring框架 1.spring ioc IoC其实有两种方式,一种就是DI,而另一种是DL,即Dependency Lookup(依赖查找),前者是当前软件实体被动接受其依赖的其 ...
- 从源码浅析Java中的Lock和AbstractQueuedSynchronizer
在之前的文章中我也曾经介绍过Lock,像ReentrantLock(可重入锁)和ReentrantReadWriteLock(可重入读写锁),这些所我们在说的时候并没有详细的说明它们的原理,仅仅说明了 ...
- 笔记:Maven 配置文件模板
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- npm 和bower之间的区别
(一) npm是node js的包管理器,用来下载安装node js的第三方工具包,也可以用来发布你自己开发的工具包.通过npm可以安装bower,命令如下: npm install -g bower ...