LINQ
语言集成查询
语言集成查询(英语:Language Integrated Query,缩写微软的一项技术,新增一种自然查询的SQL语法到.NET Framework的编程语言中,当前可支持C#以及Visual Basic .NET语言。2007年11月19日随.NET Framework 3.5发布了LINQ技术。
基本含义
从技术角度而言,LINQ定义了大约40个查询操作符,如select、from、in、where以及order by(C#中)。使用这些操作符可以编写查询语句。不过,这些查询还可以基于很多类型的数据,每个数据类型都需要一个单独的LINQ类型。
经过了最近 20 年,面向对象编程技术( object-oriented (OO) programming technologies )在工业领域的应用已经进入了一个稳定的发展阶段。程序员都已经认同像 类(classes)、对象(objects)、方法(methods)这样的语言特性。考察下一代的技术,一个新的编程技术的重大挑战开始呈现出来,即面向对象技术诞生以来并没有解决降低访问和整合信息数据( accessing and integrating information )的复杂度的问题。其中两个最主要访问的数据源与数据库(database)和XML标准通用标记语言下的一个应用)相关。
LINQ 提供了一条更常规的途径即给.Net Framework添加一些可以应用于所有信息源( all sources of information )的具有多种用途( general-purpose )的语法查询特性( query facilities ),这是比向开发语言和运行时( runtime )添加一些关系数据( relational )特性或者类似 XML 特性( XML-specific )更好的方式。这些语法特性就叫做 .NET Language Integrated Query (LINQ) 。
包含 DLinq 和 XLinq。
语言风格
LINQ新增了多项语言的风格,来展示出查询语言的扩展性,例如:C#:
匿名类型
匿名类型(Anonymous type)是C# 3.0与Visual Basic 9.0新增的功能,它允许开发人员可以使用不具类型的方式创建新的数据结构,而真正的类型在编译时期,由C# (或VB) Compiler自动产生,并写入编译目标文件中,它可以让开发人员能够很简单利用匿名类型创建对象,LINQ中的select指令即是利用这种特性来创建回传对象。
匿名类型本质上是表达元组(tuple),采用值语义。
下列使用匿名类型的代码:
会由编译器改写为:
标准查询运算符
言语支持
下列的言语支持LINQ。
注:C++/CLI尚未支持LINQ。但是有第三方的C++包,以及第三方的PHP
示例
一个简单例子:
输出: 49 25 1
另一个例子:
支持
LINQ当前由Visual Studio2008、2010、2012、2013、2015、2017支持。
语言扩展
微软同样提供了LINQExtender,允许用户在不了解LINQ实现细节的情况下,编写自己的LINQ扩展。 如:LINQ to Twitter,LINQ to Oracle,LINQ to Active Directory等。
参考资料
最新修订时间:2022-08-25 17:24
目录
概述
基本含义
参考资料