Linq就是Language Integrated Query的缩写,即语言集成查询,是微软在.Net  3.5中提出的 一项新技术, Linq主要包含4个组件——Linq To Objects、Linq To XML、Linq To DataSet 和Linq To SQL。

我们操作linq一般来说有两种方式,一种是lamdba表达式+扩展方法,还有一种就是表达式,表达式方式跟sql差不多,区别就是我们这是按照sql执行顺序来的,比如:sql写法就是select row from tb,表达式的写法就是 from tb select row这样

下面我们来演示lamdba、表达式和普通方法的区别:

static void Main(string[] args)
{var list = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };//lamdba 扩展方法var counts1 = list.Where(t => t % 2 == 0).Count();//表达式var counts2 = (from t in listwhere t % 2 == 0select t).Count();//表达式var counts3 = 0;for (int i = 0; i < list.Length; i++){if (list[i] % 2 == 0){counts3++;}}Console.WriteLine("lamdba方式输出:{0}", counts1);Console.WriteLine("表达式方法输出:{0}", counts2);Console.WriteLine("一般方式输出:{0}", counts3);Console.Read();
}
lamdba方式输出:5
表达式方法输出:5
一般方式输出:5

查询操作符(扩展方法+lambda),扩展方法  扩展的事IEnumerable<T>接口。所以linq的基础都是集合要继承IEnumerable<T>。

过滤:where,Find,FindAll,FindLast,First<T>,FirstOrDefault<>

统计函数:Count,MIn,Sum,Max

排序:OrderBy,OrderByDescending

跳过前面多少条数据取余下的数据:SKIP,如:list.Skip(rows * (pages - 1)),就是我们一般用的分页了

从开始起获取指定数量的数据:TAKE

模糊匹配:Contains

分组:GroupBy

连接查询:Join

投影:select(select t或者select(t=>new{t.1,t.2}))

2,查询表达式

From [type] id in source

[join [type] id in source  on expr equals expr [into subGroup]]

[from [type] id in source|let id=expr | where condition]

[orderby ordering,ordering,ordering,ordering...]

select select expr | group expr by key

[into id query]

tips:type是可选的,id是数据源集合中的一项,source是数据源集合,   其实是在一直循环source,每次循环把值放入select后面

expr表示一个表达式,subGroup是一个临时变量,继承自IGroup,代表一个分组。

可以有多个form,多个where,set指定临时变量

可以有0-多个排序 orderby a descing orderby b。 orderby a descing ,b,c

select  new投影(匿名类,返回的类型用var   因为他生成的时候一后台定义的类型集合),group 类型 by 具体属性。标准linq  前面一般写一个var(不确定类型)。              一个查询表达式必须以select或者group by结束。select后跟要检索的内容。group by 是对检索的内容进行分组

group by 他后面只能跟 into is as 关键字,常用into 关键字放入临时数据源 然后在select 投影。

into放入临时数据源

Let 设置变量

注意:这种查询表达式会编译成上面的扩展方法+lambad。这种是一个语法糖。

Linq语言集成查询相关推荐

  1. unity的C#学习——foreach循环相关:IEnumerable接口、LINQ语言集成查询、可枚举对象与枚举类型

    文章目录 C#里的判断和循环 1.foreach循环 2.IEnumerable接口 3.LINQ语言集成查询 4.可枚举对象和枚举类型的区别 C#里的判断和循环 C#和C语言都有条件语句和循环语句, ...

  2. Linq语句集成查询

    开发工具与关键技术: MVC 撰写时间:2021/6/18 Linq to SQL 全称基于关系数据的.NET 语言集成查询,用于以对象形式管理关系数据,我们常用Linq语句去查询SQL内的数据,可以 ...

  3. 【开源库推荐】go-linq 强大的语言集成查询库如,ORM一般丝滑处理内存数据

    在业务开发过程中除了业务逻辑.数据库之外主要就是数据转换处理过滤等相关的内容,比如合法性验证(可以使用"go-playground/validator")但是golang在数据处理 ...

  4. C# 语言集成查询 LINQ(Language Integrated Query)

    提示:如有错误,请不吝指出 文章目录 注意 一.首先声明两个示例集合 二.LINQ多种操作方法 1.Select方法返回基于某具体类型的可枚举集合(指定的所有数据) 2.枚举器返回多个数据项 3.筛选 ...

  5. LINQ 的标准查询操作符

    摘自msdn (http://msdn.microsoft.com/zh-cn/magazine/cc337893.aspx) LINQ 的标准查询操作符 John Papa 代码下载位置: Data ...

  6. C# LINQ 表达式 ,查询, 筛选

    语言集成查询 (LINQ) 是一组技术的名称,这些技术建立在将查询功能直接集成到 C# 语言(以及 Visual Basic  和可能的任何其他 .NET 语言)的基础上. 借助于 LINQ,查询现在 ...

  7. Entity Framework 4 in Action读书笔记——第四章:使用LINQ to Entities查询:使用函数...

    4.7 使用函数 扩展LINQ to Entities查询的简便方法就是使用函数.有四种类型的函数可以应用: 规范函数-LINQ to Entities本身没有提供的一组预定义的函数. 数据库函数-一 ...

  8. 实验二 SQL 语言——SELECT 查询操作(第一部分)

    SQL 语言--SELECT 查询操作 实验目的: -了解查询的概念和方法:-掌握 SQL Server 集成管理器查询子窗口中执行 SELECT 操作的方法:-掌握 SELECT 语句在单表查询中的 ...

  9. Go语言中查询SqlServer数据库

    一.Go语言中查询MsSQL数据库: // main.go package mainimport ("database/sql""fmt""log&q ...

最新文章

  1. 【C++】C/C++ 中 static 的用法全局变量与局部变量
  2. 5个有趣的Python小知识,返回结果让人出乎意料~
  3. 04-iOS蓝牙传输数据演示
  4. 北京点击科技有限公司董事长兼总裁——王志东经典语录2
  5. NBear简介与使用图解
  6. Shell 企业29道面试题 [转]
  7. OLAP-impala-大数据Week13-DAY6-impala
  8. 【字符串替换】程序员面试金典——1.4空格替换
  9. 文本数据抽取经验总结
  10. BGP邻居建立及路由传递/解决BGP数据层面路由黑洞实验
  11. 南京大学信号与系统851考研上岸经验分享
  12. 前期易语言编程作品收录|赤壁盗号|
  13. 收费系统java源代码_java网吧计费系统源代码
  14. 软件工程导论复习之可行性研究
  15. python 分词 词性_分词及词性标注
  16. 2022-2028年全球及中国视频后期制作服务行业投资前景分析
  17. java puppeteer生成pdf_PuppeteerSharp导出PDF(带页码)
  18. 在scrapy中params无处安放???
  19. ssh+Google双重认证
  20. JAVA-读取excel转成html 将excel表格转换为HTML文件格式 转成前端表格样式

热门文章

  1. (软件工程复习核心重点)第六章实现和测试-第三节:单元测试
  2. 谈谈地址转换协议ARP的概念及特点
  3. LeetCode 524 通过删除字母匹配到字典里最长单词
  4. 56 - II. 数组中数字出现的次数 II
  5. 1203. 项目管理
  6. Scala-Unit6-final/type关键字、样例类样例对象
  7. 移动端布局必须注意的问题2
  8. Unity3D之主角面朝方向一定区域内对象角度计算(转)
  9. Linux(Ubuntu 14.0)
  10. armadillo 库加入项目中程序卡死不运行的问题