LINQ是什么

Fanly 2020-09-27 02:10:22
QA

语言集成查询(LINQ)是微软的一项技术。新增一种自然查询的SQL语法到.NET Framework的编程语言中,当前可支持C#以及Visual Basic .NET语言。

语言集成查询(英语:Language Integrated Query,缩写:LINQ),发音"link",是微软的一项技术,新增一种自然查询的 SQL 语法到.NET Framework 的编程语言中,当前可支持 C#以及 Visual Basic .NET 语言。2007 年 11 月 19 日随.NET Framework 3.5 发布了 LINQ 技术

LINQ是什么

包括 LINQ to Objects、LINQ to SQL、LINQ to Datasets、LINQ to Entities、LINQ to Data Source、LINQ to XML/XSD 等。

基本含义

从技术角度而言,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 的各式言语支持度

下列的言语支持 LINQ。

C#3.0

F#1.1.8.1

Visual Basic 2008(9.0)

注:C++/CLI 尚未支持 LINQ。但是有第三方的 C++包,以及第三方的 PHP 包

LINQ 的示例

一个简单例子:

输出: 49 25 1

另一个例子:

Visual Studio 支持

LINQ 当前由 Visual Studio2008、2010、2012、2013、2015、2017 支持。

语言扩展

微软同样提供了 LINQExtender,允许用户在不了解 LINQ 实现细节的情况下,编写自己的 LINQ 扩展。 如:LINQ to Twitter,LINQ to Oracle,LINQ to Active Directory 等。

0个人收藏 收藏

相关推荐

  • ado是什么

    ado是什么

    ADO是一种程序对象,用于表示用户数据库中的数据结构和所包含的数据。在Microsoft Visual Basic编辑器中,可以使用ADO对象以及ADO的附加组件来创建或修改表和查询、检验数据库、或者访问外部数据源。
  • blockchian new

    区块链 3.0 将带来哪些行业的变化

    区块链3.0能够对于每一个互联网中代表价值的信息和字节进行产权确认、计量和存储,从而实现资产在区块链上可被追踪、控制和交易。从而对于智能合约、共享经济、审计、文件存储、产权保护、物联网等领域带来了较大的变化。
  • VSCode Visual Studio Code

    Visual Studio Code,功能强大的轻量级免费代码编辑器

    Visual Studio Code(VS Code或VSC)是微软推出的一款现代化的轻量级代码编辑器。免费开源支持Windows、macOS和Linux平台。VS Code结合了简洁的用户界面和强大的功能集,旨在提高开发者的编程效率和体验。这款编辑器尤其适用于网页开发和云端应用开发,因其对多种编程语言和框架的内置支持和插件扩展而广受欢迎。
  • TypeScript

    TypeScript 是什么

    TypeScript是一种由微软开发的自由和开源的编程语言。它是JavaScript的一个严格超集,并添加了可选的静态类型和使用看起来像基于类的面向对象编程语法操作Prototype。
  • Tesla 特斯拉

    哪些车有哨兵模式

    哨兵模式作为电动汽车的安全监控功能,已被特斯拉、蔚来、小鹏和理想等多个知名品牌采纳。该功能通过摄像头和传感器实时监控车辆周围,发现异常即触发警报并记录影像,为车主提供安全保障。未来,更多车型将加入哨兵模式行列,提升行车安全。
  • 特斯拉 Tesla

    国家不允许特斯拉哨兵模式吗

    特斯拉哨兵模式在国内并未被全面禁止,但受到政府规范和监管,以确保个人隐私和国家安全。车主在使用时应遵守相关法律法规,注意隐私保护。同时特斯拉应履行社会责任,加强与政府合作,推动电动汽车产业的健康发展。