什么是LINQ?
LINQ是英文Language Integrated Query的缩写,中文译为语言集成查询,发音”link”(我们听到有部分人发作”link-queue”其实是不准确的)。
LINQ(语言集成查询)是C#、VB.NET以及F#中的统一查询语法,用以检索来自不同数据源和格式的数据。它集成在c#、VB以及F#语言中,从而消除了编程语言和数据库之间的不匹配,并为不同类型的数据源提供了一个单一的查询接口。
例如,SQL是一种结构化查询语言,用于从数据库中保存和检索数据。同样,LINQ是在C#、VB.NET及F#中构建的结构化查询语法。它可以从如集合、ADO.Net、DataSet, XML文档,web服务以及MS SQL Server等不同类型的数据源中检索数据。
LINQ的架构图如下:
LINQ在C#语言中引入了查询功能,在编写程序代码时,编译器会检查LINQ查询是否正确。在Visual Studio中,LINQ查询是语法高亮显示并智能感知的,这为.NET开发人员提供了用于查询数据的强类型、逻辑结构的语法。
LINQ示例
以下是一个从整型数组中找出分数大于80的子数组:
public class Program
{
static void Main()
{
// 定义一个整型数组作为数据源
int[] scores = new int[] { 97, 92, 81, 60 };
// 定义查询表达式
IEnumerable<int> scoreQuery =
from score in scores
where score > 80
select score;
// 执行LINQ查询
foreach (int i in scoreQuery)
{
Console.Write(i + " ");
}
}
运行结果如下图:
整型数组scores
是数据源,以下是一个LINQ查询:
from score in scores
where score > 80
select score;
查询结果被赋给了变量scoreQuery
。更多关于LINQ的查询语法,将在后续章节中逐一介绍。
在执行LINQ查询之前,scoreQuery
是不会得到结果的。LINQ查询可以通过多种方式执行,这里我们使用foreach
循环来执行存储在scoreQuery
中的查询。foreach
循环在数据源上执行查询并获得结果,然后遍历结果集。
因此,每个LINQ查询都必须查询某种类型的数据源,或者是数组、集合、XML或者其他数据库。写完LINQ查询后,必须执行它以获得结果。
下一节,我们将了解为什么要使用LINQ?
发表评论
登录用户才能发表评论, 请 登 录 或者 注册