知识点总结:Linq和Lambda
基本语法:
Linq:var result=from t in table order by sort ascending/descending select t;
Lambda:var result=table.OrderBy/OrderByDescending(a => a.sort).
1.获取全部记录
Linq:var result =from t in table select t;
Lambda:var result=table.select(t=>new{t.Id,t.Name});
2.获取其中某一字段
Linq:var names=from t in table select t.name;
Lambda:var result=table.select(t=>new{t.Id});
3.获取其中多个字段
Linq:var idnames=from t in table select new{t.id,t.name};
Lambda:var result=table.select(t=>new{t.Id,t.Name});
4.去重
Linq:var names= (from t in table select t.name).Distinct();
Lambda:var names=table.Where((x,i)=>table.FindIndex(z=>z.Name== x.Name) == i)
5.内连接(join | inner join)
Linq:var query=from a in table1 join b in table2 on a.Id equals b.MainId select new {Id=a.Id,MId=b.Id}
Lambda:var query=table1.Join(table2,a=>a.Id,b=>b.Id,(a,b)=>new{Id=a.Id,Mid=b.Id})
6.左连接(left join | left outer join)
Linq:var query=from a in table1 join b in table2 on a.Id equals b.MainId into temp from tt in temp.DefaultIfEmpty select new {Id=a.Id,MId=tt==null?"":tt.Id}
Lambda:var query=table1.GroupJoin(table2,a=>a.Id,b=>b.Id,(a,Grp)=>new{a=a,Grp=Grp}).selectMany(temp0=>temp0.Grp.DefaultIfEmpty(),(temp0,grp)=>new{Id=temp0.a.Id,Mid=(grp==null)?"":grp.Id})
右连接表位置反一下即可
知识点总结:Linq和Lambda的更多相关文章
- LINQ使用Lambda表达式选择几列
学习LINQ的Lambda的表达式,尝试从数据集合中,选择其中几列. 创建一个model: source code: namespace Insus.NET.Models { public class ...
- Linq之Lambda进阶
目录 写在前面 系列文章 带有标准查询运算符的Lambda Lambda中类型推断 Lambda表达式中变量作用域 异步Lambda 总结 写在前面 上篇文章介绍了Lambda的基本概念以及匿名方法, ...
- SQL、LINQ、Lambda 三种用法(转)
SQL.LINQ.Lambda 三种用法颜色注释: SQL LinqToSql Lambda QA1. 查询Student表中的所有记录的Sname.Ssex和Class列.select sname, ...
- 浅谈sql 、linq、lambda 查询语句的区别
浅谈sql .linq.lambda 查询语句的区别 LINQ的书写格式如下: from 临时变量 in 集合对象或数据库对象 where 条件表达式 [order by条件] select 临时变量 ...
- LInq 与lambda表达式
LInq 与lambda表达式 LinQ是我们常用的技术之一.因为我们绕不开的要对数据进行一系列的调整,如 排序. 条件筛选.求和.分组.多表联接 等等. lambda则是我们常用的语法糖,配合lin ...
- 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象
本文需要对C#里的LINQ.Lambda 表达式 .委托有一定了解. 在工作中,经常遇到需要对比两个集合的场景,如: 页面集合数据修改,需要保存到数据库 全量同步上游数据到本系统数据库 在这些场景中, ...
- Linq与Lambda,神一般的工作效率
Linq与Lambda,神一般的工作效 通过对linq和lambda的学习,越发感觉linq和lambda的重要性,他们能极大地简化程序,同时提升程序的可读性,大大提升了我们的工作效率,在公司的 ...
- SQL、Linq和Lambda表达式 的关系
首先说说这三者完全是三种不同的东西,SQL是结构化查询语言(Structured Query Language)简称,这大家再熟悉不过了,下面主要介绍LINQ和Lambda表达式的基本概念以及同一查询 ...
- c#封装DBHelper类 c# 图片加水印 (摘)C#生成随机数的三种方法 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象 c# 制作正方形图片 JavaScript 事件循环及异步原理(完全指北)
c#封装DBHelper类 public enum EffentNextType { /// <summary> /// 对其他语句无任何影响 /// </summary> ...
- 动态LINQ(Lambda表达式)构建
using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; us ...
随机推荐
- Java基础——枚举
一.使用枚举类之前是如何实现枚举的 在JDK1.5之前,我们定义常量都是:public static fianl....:定义枚举也可以通过如下的方式: package com.jiangbei.t ...
- 20155203 2016-2017-2 《Java程序设计》第2周学习总结
20155203 2016-2017-2 <Java程序设计>第2周学习总结 教材学习内容总结 第三章的主要内容是使用Java语言设计程序的基础语法的学习 java语言中的计算:如果两个数 ...
- 20155212 实验三 敏捷开发与XP实践
20155212 实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器&g ...
- vim 多个文件切换
打开多个文件:1.vim还没有启动的时候:在终端里输入 vim file1 file2 ... filen便可以打开所有想要打开的文件2.vim已经启动输入:open file可以再打开一个文件,并且 ...
- c++ 结束程序的几种方式
abort exit 一.用abort()结束程序 用abort()表示非正常结束程序.如果要正常结束程序得用exit() 二.用exit()结束程序 用exit()它可以使程序正常结束,这个函数 ...
- 【LG4067】[SDOI2016]储能表
[LG4067][SDOI2016]储能表 题面 洛谷 题解 这种$n$.$m$出奇的大的题目一看就是数位$dp$啦 其实就是用一下数位$dp$的套路 设$f[o][n][m][k]$表示当前做到第$ ...
- hadoop 、hive 的一些使用经验。
1.queue的设置 hadoop2.0支持了queue,在hadoop程序里面进行queue的配置: job.getConfiguration().set("mapred.job.queu ...
- C#实现仪器的自动化控制
1.概述 生产测试当中,测试仪器不可或缺,如果是小规模生产,手动测试可以对付:但是要想到达大批量生产的目的,为了简化测试,节约时间,就需要进行自动化测试.出于这样的需求,对仪器的自动化程控就有了需求. ...
- 查看Oracle数据库表空间大小(空闲、已使用),是否要增加表空间的数据文件
查看Oracle数据库表空间大小(空闲.已使用),是否要增加表空间的数据文件 1.查看表空间已经使用的百分比 Sql代码 select a.tablespace_name,a.bytes/1024/1 ...
- 【word基础】如何取消word首字母大写