📜  LINQ(语言综合查询)

📅  最后修改于: 2021-05-30 01:45:13             🧑  作者: Mango

LINQ被称为“语言集成查询” ,它是在.NET 3.5和Visual Studio 2008中引入的。LINQ的优点在于它提供了.NET语言(如C#,VB.NET等)生成查询以检索数据的功能。从数据源。例如,程序可能会从学生记录中获取信息或访问员工记录等。在过去的几年中,此类数据存储在与应用程序不同的数据库中,您需要学习不同类型的查询语言才能访问这样的数据类型,例如SQL,XML等。而且您也无法使用C#语言或任何其他.NET语言创建查询。

为了克服此类问题,Microsoft开发了LINQ。它为C#或.NET语言提供了一种或多种功能,可生成对任何LINQ兼容数据源的查询。最好的部分是,无论使用哪种类型的数据源,用于创建查询的语法都是相同的,这意味着在关系数据库中创建查询数据的语法与用于创建存储在该数组中的查询数据的语法相同。无需使用SQL或任何其他非.NET语言机制。您还可以将LINQ与SQL,XML文件,ADO.NET,Web服务以及任何其他数据库一起使用。

在C#中,LINQ存在于System.Linq命名空间中。它提供了支持LINQ查询的不同类型的类和方法。在此命名空间中:

  • Enumerable类包含对执行IEnumerable 对象进行操作的标准查询运算符。
  • Queryable类包含对执行IQueryable 对象进行操作的标准查询运算符。

LINQ的体系结构

LINQ的体系结构是3层体系结构。其中最顶层包含语言扩展,最底层包含通常用于实现IEnumerable 或IQueryable 通用接口的对象的数据源。 LINQ的体系结构如下图所示:

为什么我们使用LINQ?

现在我们了解了为什么要创建LINQ或为什么要使用LINQ。以下几点解释了为什么我们使用LINQ。

  • 创建LINQ的主要目的是,在C#3.0之前,我们使用for循环,foreach循环或委托遍历一个集合以查找特定的对象,但是使用这些方法查找对象的缺点是您需要编写大量的代码来查找一个对象,该对象更加耗时并且使程序的可读性降低。因此为克服这些问题,LINQ推出了。它们在几行中执行相同的操作,使您的代码更具可读性,并且您还可以在其他程序中使用相同的代码。
  • 它还在编译时提供了完整类型检查,它有助于我们在运行时检测错误,以便我们轻松删除它们。
  • LINQ是比SQL更简单,井井有条且高级的语言
  • 您也可以将LINQ与C#数组和集合一起使用。它为您提供有效解决旧问题的新方向。
  • 借助LINQ,您可以轻松使用任何类型的数据源,例如XML,SQL,实体,对象等。单个查询可以使用任何类型的数据库,而无需学习不同类型的语言。
  • LINQ支持查询表达式,隐式键入的变量,对象和集合初始化程序,匿名类型,扩展方法和Lambda表达式。

LINQ的优势

  • 用户无需为其他类型的数据源或数据格式学习新的查询语言。
  • 它增加了代码的可读性。
  • 查询可以重用。
  • 它在编译时对对象进行类型检查。
  • 它为通用集合提供了IntelliSense。
  • 它可以与数组或集合一起使用。
  • LINQ支持过滤,排序,排序,分组。
  • 由于它与C#语言集成在一起,因此调试起来很容易。
  • 它提供了简单的转换,意味着您可以轻松地将一种数据类型转换为另一种数据类型,例如将SQL数据转换为XML数据。