Linq语言集成查询
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语言集成查询相关推荐
- unity的C#学习——foreach循环相关:IEnumerable接口、LINQ语言集成查询、可枚举对象与枚举类型
文章目录 C#里的判断和循环 1.foreach循环 2.IEnumerable接口 3.LINQ语言集成查询 4.可枚举对象和枚举类型的区别 C#里的判断和循环 C#和C语言都有条件语句和循环语句, ...
- Linq语句集成查询
开发工具与关键技术: MVC 撰写时间:2021/6/18 Linq to SQL 全称基于关系数据的.NET 语言集成查询,用于以对象形式管理关系数据,我们常用Linq语句去查询SQL内的数据,可以 ...
- 【开源库推荐】go-linq 强大的语言集成查询库如,ORM一般丝滑处理内存数据
在业务开发过程中除了业务逻辑.数据库之外主要就是数据转换处理过滤等相关的内容,比如合法性验证(可以使用"go-playground/validator")但是golang在数据处理 ...
- C# 语言集成查询 LINQ(Language Integrated Query)
提示:如有错误,请不吝指出 文章目录 注意 一.首先声明两个示例集合 二.LINQ多种操作方法 1.Select方法返回基于某具体类型的可枚举集合(指定的所有数据) 2.枚举器返回多个数据项 3.筛选 ...
- LINQ 的标准查询操作符
摘自msdn (http://msdn.microsoft.com/zh-cn/magazine/cc337893.aspx) LINQ 的标准查询操作符 John Papa 代码下载位置: Data ...
- C# LINQ 表达式 ,查询, 筛选
语言集成查询 (LINQ) 是一组技术的名称,这些技术建立在将查询功能直接集成到 C# 语言(以及 Visual Basic 和可能的任何其他 .NET 语言)的基础上. 借助于 LINQ,查询现在 ...
- Entity Framework 4 in Action读书笔记——第四章:使用LINQ to Entities查询:使用函数...
4.7 使用函数 扩展LINQ to Entities查询的简便方法就是使用函数.有四种类型的函数可以应用: 规范函数-LINQ to Entities本身没有提供的一组预定义的函数. 数据库函数-一 ...
- 实验二 SQL 语言——SELECT 查询操作(第一部分)
SQL 语言--SELECT 查询操作 实验目的: -了解查询的概念和方法:-掌握 SQL Server 集成管理器查询子窗口中执行 SELECT 操作的方法:-掌握 SELECT 语句在单表查询中的 ...
- Go语言中查询SqlServer数据库
一.Go语言中查询MsSQL数据库: // main.go package mainimport ("database/sql""fmt""log&q ...
最新文章
- 【C++】C/C++ 中 static 的用法全局变量与局部变量
- 5个有趣的Python小知识,返回结果让人出乎意料~
- 04-iOS蓝牙传输数据演示
- 北京点击科技有限公司董事长兼总裁——王志东经典语录2
- NBear简介与使用图解
- Shell 企业29道面试题 [转]
- OLAP-impala-大数据Week13-DAY6-impala
- 【字符串替换】程序员面试金典——1.4空格替换
- 文本数据抽取经验总结
- BGP邻居建立及路由传递/解决BGP数据层面路由黑洞实验
- 南京大学信号与系统851考研上岸经验分享
- 前期易语言编程作品收录|赤壁盗号|
- 收费系统java源代码_java网吧计费系统源代码
- 软件工程导论复习之可行性研究
- python 分词 词性_分词及词性标注
- 2022-2028年全球及中国视频后期制作服务行业投资前景分析
- java puppeteer生成pdf_PuppeteerSharp导出PDF(带页码)
- 在scrapy中params无处安放???
- ssh+Google双重认证
- JAVA-读取excel转成html 将excel表格转换为HTML文件格式 转成前端表格样式