LINQ Framework详细介绍
创始人
2024-06-07 11:31:21
0

LINQ有很多值得学习的地方,这里我们主要介绍LINQ Framework,包括介绍LINQ To Object Framework等方面。

Microsoft于新一代的.NET Framework 3.5中增加了几个新功能,其中之一就是LINQ,与其它新功能不同,架构上,LINQ是一个Framework方式呈现,理论上可以使用于任何的.NET Language中,但她的真正威力必须要程式语言配合才能够完全的发挥。

LINQ Framework大致分为三大部份,各自因应不同的资料来源,LINQ To Object Framework用来对物件查询,LINQ To XML Framework用于查询XML物件,LINQ To ADO.NET Framework又可细分为三个子集:LINQ To DataSet Framework用来对DataTable、DataRow等物件做查询,LINQ To SQL Framework则用于对资料库的查询,LINQ To Entity Framework则是与ADO.NET Entity Framework整合。在LINQ Framwork之上的,是程式语言编译器所提供的LINQ Expression语法支援,如同前面所提及的,LINQ Framework本身是一组与程式语言无关的Framework,借助于编译器所提供的LINQ Expression支援,让设计师能更轻松的撰写LINQ应用程式。举例来说,在C#中可以用>from xxx in xxx where xxx == xxx<的LINQ Expression语法来取代对LINQ To Object Framework的函式呼叫>xxx.Where(..)<,此处的Where函式是LINQ To Object Framework所提供的,下文会对此有更详细的介绍。基本上,语言编译器有义务对于如LINQ To Object、LINQ To XML、LINQ To ADO.NET提供一致性的LINQ Expression语法规则,这可以让设计师只学习一种语法,就能应用于不同的语言中。 LINQ的出现,代表着程式语言将走向下一个阶段,正如其全名『Language Integrated Query』所表现的意义,程式语言将与查询语言整合,为设计师提供更快速、方便的查询功能,更甚之! LINQ中的LINQ To SQL功能正试图整合各资料库厂商所各自为政的SQL语言,其架构中的LINQ Provider机制,允许设计师为不同的资料库撰写Provider,将LINQ的语法转换成该资料库所能接受的语法

LINQ架构中分成了三大部份,LINQ To Object、LINQ TO ADO.NET、LINQ TO XML,因此本系列文章也分成了三个阶段,在此阶段中,笔者将以LINQ To Object Framework为主轴,为读者们介绍其基本用法,与其它的文章不同,本文同时会尝试讨论LINQ To Object Framework的幕后机制,将LINQ To Object Framework身上所被的简洁外衣去除,让读者们一窥其设计之巧妙之处,首先从一个简单的LINQ To Object Framework程式开始。

  1. private static void TestSimpleLinq() {  
  2. string[] list = new string[] { "1111", "2222", "3333" };  
  3. var p = from o in list select o;  
  4. foreach (var s in p)  
  5. Console.WriteLine(s);  
程式码中,斜体字部份就是C#所提供的LINQ Expression语法,意思是从list这个字串阵列中,取出一个列举物件(IEnumerable),放到p变数中,读者们应该已发觉到, p变数是以var方式宣告的,var是C# 3.0的新关键字,意指其型态是由右方运算式所指定,本文后面会详述其用法及限制,在此处,请将她视为是由编译器依据右方运算式的传回值所决议的型别。

【编辑推荐】

  1. Linq匿名类型简单概述
  2. Linq随机读取数据浅析
  3. Linq Lambda表达式全面分析
  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 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...