深入讲解 LINQ表达式
创始人
2024-06-07 09:30:36
0

本文从LINQ表达式简介、初识LINQ表达式、LINQ表达式解析、查询操作符与扩展方法解析等几方面对对LINQ表达式进行简单介绍。

在向大家详细介绍LINQ表达式之前,首先让大家了解下LINQ表达式简介,然后全面介绍LINQ表达式。

LINQ表达式简介

1.OO(面向对象)以外的疆域:信息的访问与整合。关系数据库与XML为其中的典型应用。

2.NET Language Integrated Query (LINQ):不采用特定於关系数据库或者XML的专有方案,而采用通用方案来解决各种信息源的访问与整合问题。

3.在LINQ中,查询成为编程语言的一个组成部分,这使得查询表达式可以得到很好的编译时语法检查,丰富的元数据,智能感知等强类型语言的好处。

初识LINQ表达式

  1. class app   
  2. {    
  3. static void Main()   
  4. {    
  5. string[] names = { "Burke", "Connor", "Frank",    
  6. "Everett", "Albert", "George",    
  7. "Harris", "David" };    
  8. IEnumerable query = from s in names    
  9. where s.Length == 5    
  10. orderby s    
  11. select s.ToUpper();    
  12. foreach (string item in query)    
  13. Console.WriteLine(item);    
  14. }    
  15. }   

LINQ表达式解析

  1. IEnumerable query = from s in names    
  2. where s.Length == 5    
  3. orderby s    
  4. select s.ToUpper();   

在语义上等同于如下“方法风格(基于方法)的查询”:

  1. IEnumerable query = names   
  2. .Where(s => s.Length == 5)    
  3. .OrderBy(s => s)    
  4. .Select(s => s.ToUpper());   

LINQ表达式解析:

  1. Func filter = delegate (string s) {    
  2. return s.Length == 5;};    
  3. Func extract = delegate (string s) {    
  4. return s; };    
  5. Func project = delegate (string s) {    
  6. return s.ToUpper(); };    
  7. IEnumerable query = names.Where(filter)    
  8. .OrderBy(extract)    
  9. .Select(project);   

查询操作符与扩展方法解析:

查询操作符是LINQ表达式中的另外一项重要设施,LINQ使用扩展方法来定义查询操作符,例如where操作符:

  1. namespace System.Linq {    
  2. public static class Enumerable {    
  3. public static IEnumerable Where(    
  4. this IEnumerable source, Funcbool> predicate) {    
  5. foreach (T item in source)    
  6. if (predicate(item))    
  7. yield return item;    
  8. }    
  9. }    
  10. }   

以上就是对LINQ表达式的详细介绍。

【编辑推荐】

  1. 详谈Linq查询结果分析的方法
  2. 简简单单学习Linq查询语法
  3. 详细阐述Linq插入数据的操作方法
  4. 浅析Linq插入数据的实现方法
  5. 简单解决Linq多条件组合问题

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...