linq用法整理
linq用法整理
普通查询
        var highScores = from student in students
                         where student.ExamScores[exam] > score
                         select new {Name = student.FirstName, Score = student.ExamScores[exam]};
Group by
    var queryLastNames =
        from student in students
        group student by student.LastName into newGroup
        orderby newGroup.Key
        select newGroup;
有条件Group by
    var queryGroupByAverages = from student in students
                               group new { student.FirstName, student.LastName }
                                    by student.ExamScores.Average() > 75
                                    into studentGroup
                               select studentGroup;
    var queryHighScoreGroups =
        from student in students
        group student by new { FirstLetter = student.LastName[0], Score = student.ExamScores[0] > 85 }
        into studentGroup
        orderby studentGroup.Key.FirstLetter
        select studentGroup;
嵌套Group
    var queryNestedGroups =
        from student in students
        group student
        by student.Year
        into newGroup1
        from newGroup2 in
            (from student in newGroup1
             group student by student.LastName)
        group newGroup2 by newGroup1.Key;
Inner Joins
- Simple key join 简单键值join
 
    var query = from person in people
                join pet in pets on person equals pet.Owner
                select new { OwnerName = person.FirstName, PetName = pet.Name };
- Composite key join 多条件join
 
    IEnumerable<string> query =
                                from employee in employees
                                join student in students
                                on new { employee.FirstName, employee.LastName } equals new { student.FirstName, student.LastName }
                                select employee.FirstName + " " + employee.LastName;
- Multiple join 多条件join
 
    var query = from person in people
                join cat in cats
                on person equals cat.Owner
                join dog in dogs
                on new { Owner = person, Letter = cat.Name.Substring(0, 1) } equals new { dog.Owner, Letter = dog.Name.Substring(0, 1) }
                select new { CatName = cat.Name, DogName = dog.Name };
- Inner join by using grouped join 使用分组连接的内联
 
    var query1 =
                 from person in people
                 join pet in pets
                 on person equals pet.Owner
                 into gj
                 from subpet
                 in gj
                 select new { OwnerName = person.FirstName, PetName = subpet.Name };
    var query2 =
                 from person in people
                 join pet in pets
                 on person equals pet.Owner
                 select new { OwnerName = person.FirstName, PetName = pet.Name };
left outer joins 左外部联接
    var query =
                from person in people
                join pet in pets
                on person equals pet.Owner
                into gj
                from subpet in gj.DefaultIfEmpty()
                select new
                {
                        person.FirstName,
                        PetName = subpet?.Name ?? String.Empty
                };
join 子句的结果进行排序
             var groupJoinQuery2 =
                 from category in categories
                 join prod in products on category.ID equals prod.CategoryID into prodGroup
                 orderby category.Name
                 select new
                 {
                     Category = category.Name,
                     Products = from prod2 in prodGroup
                                orderby prod2.Name
                                select prod2
                 };
Join by using composite keys 多条件 join
var query =
    from o in db.Orders
    from p in db.Products
    join d in db.OrderDetails
    on new {o.OrderID, p.ProductID} equals new {d.OrderID, d.ProductID}
    into details
    from d in details
    select new
    {
        o.OrderID,
        p.ProductID,
        d.UnitPrice
    };
在查询表达式中处理 null 值Handle null values in query expressions
var query1 =
    from c in categories
    where c != null
    join p in products
    on c.ID equals p?.CategoryID
    select new { Category = c.Name, Name = p.Name };
void TestMethod(Northwind db)
{
    var query =
        from o in db.Orders
        join e in db.Employees
            on o.EmployeeID equals (int?)e.EmployeeID
        select new { o.OrderID, e.FirstName };
}
												
											linq用法整理的更多相关文章
- Spring JdbcTemplate用法整理
		
Spring JdbcTemplate用法整理: xml: <?xml version="1.0" encoding="UTF-8"?> <b ...
 - linux学习:特殊符号,数学运算,图像与数组与部分终端命令用法整理
		
指令:let.expr.array.convert.tput.date.read.md5.ln.apt.系统信息 一:特殊符号用法整理 系统变量 $# 是传给脚本的参数个数 $0 是脚本本身的名字 $ ...
 - #ifndef#define#endif的用法(整理)
		
[转] #ifndef#define#endif的用法(整理) 原作者:icwk 文件中的#ifndef 头件的中的#ifndef,这是一个很关键的东西.比如你有两个C文件,这两个C文件都in ...
 - Google Guava 库用法整理<转>
		
参考: http://codemunchies.com/2009/10/beautiful-code-with-google-collections-guava-and-static-imports- ...
 - MySQL中使用SHOW PROFILE命令分析性能的用法整理(配合explain效果更好,可以作为优化周期性检查)
		
这篇文章主要介绍了MySQL中使用show profile命令分析性能的用法整理,show profiles是数据库性能优化的常用命令,需要的朋友可以参考下 show profile是由Jerem ...
 - Android spannableStringBuilder用法整理
		
Android spannableStringBuilder用法整理 分类: Android开发2013-11-29 10:58 5009人阅读 评论(0) 收藏 举报 Androidspannabl ...
 - OBJECTPROPERTY用法整理
		
OBJECTPROPERTY用法整理 分类: 系统表与表结构 数据库管理维护2010-06-03 16:37 2783人阅读 评论(1) 收藏 举报 数据库sql serverinsertobject ...
 - #Javascript:this用法整理
		
常用Javascript的人都知道,[this這個關鍵字在一個函式內究竟指向誰]的這個問題很令人頭大,本人在這裡整理了一下Javascript中this的指向的五種不同情況,其中前三種屬於基本的情況, ...
 - Linq用法笔记
		
一.什么是Linq? LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特性. ...
 
随机推荐
- 高数量类别特征(high-cardinality categorical attributes)的预处理方法
			
high-cardinality categorical attributes,从字面上理解,即对于某个category特征,不同值的数量非常多,这里暂且把它叫做高数量类别属性.反之,即低数量类别属性 ...
 - java中“==”和equals方法的区别,再加上特殊的String引用类型
			
==和equals的区别: 1.==是运算符,而equals是基类Object定义的一个方法,并且equals使用==定义的 2.进行比较时,分为 基本数据类型 的比较和 引用数据类型 的比较 ...
 - JVM学习记录-类加载时机
			
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是类的加载机制. 在Java语言里面,类型的加载.连接和初始化过程都 ...
 - Docker最全教程——Redis容器化以及排行榜实战(十三)
			
前言 容器教程的路还很长,笔者尽量根据实践来不断地完善.由于在编写的过程中还会有完善和补充,后续可能会以番外来补充. 接下来会分享TeamCity.树莓派等内容,节奏可能会有点跳脱. 另外,长沙.NE ...
 - Spire高效稳定的.NET组件
			
年末将至,又到了一年一度的收集发票时间,平时零零碎碎的花钱都是不在意开发票,现在好了,到处找发票来报销,简直头大, 东拼西凑,终于搞定了全部发票,大伙多余的发票,麻烦艾特我一下啊,不限日期,能开发票的 ...
 - mybatis 增加热加载xml
			
由于在本地开发环境上每次修改mybatis xml文件都需要手动重启服务,调试的很麻烦,所以需要热加载xml文件来避免浪费时间,于是网上搜一下资料,看了下有一大堆,但试了下真正能跑起来没有(大都代码没 ...
 - 补习系列(18)-springboot H2 迷你数据库
			
目录 关于 H2 一.H2 用作本地数据库 1. 引入依赖: 2. 配置文件 3. 样例数据 二.H2 用于单元测试 1. 依赖包 2. 测试配置 3. 测试代码 小结 关于 H2 H2 数据库是一个 ...
 - DSAPI中TCP、UDP、HTTP的选择
			
在DSAPI中,网络通讯主要有以下几种:1 [TCP] TCP服务端 TCP客户端 2 [UDP] UDP服务端 UDP客户端 UDP指令版服务端 UDP指令版客户端 3 [HTTP] HTTP服务端 ...
 - AES加密然后ajax传输数据
			
最近做的一个项目,需要对传输的参数进行aes加密,所以就顺便的了解了一下,因为这种东西,肯定都是有写好的,现成的,所有这里就简单的记录一下,方便以后自己和大家查找. 首先附上百度的关于AES的百度百科 ...
 - Oracle数据库知识要点
			
一.卸载安装(来自百度经验) 完全卸载: 1. 停止相关服务 2. 运行Universal Installer,卸载产品 3. 清理注册表 4. 重启电脑,删除目录(Oracle文件夹和app文件夹) ...