LINQ教程之LINQ简介
什么是LINQ
随着计算机技术的飞速发展,数据量的增长以及数据作为应用程序的主要组成部分,如何高效地处理数据成为了软件开发者不可回避的挑战。微软在2007年的时候推出了一项新的技术 - Language Integrated Query,简称LINQ,通过该技术,我们可以在各种数据源(数据库、XML文档、对象集合等)上进行查询和操作,享受到强类型的编程、可以直接在代码内嵌入查询、检查语法错误等增强的体验。
如何使用LINQ
在C#中使用LINQ需要关注以下两个方面:
-
编译需要引用System.Core.dll,我们可以在VS工具菜单栏下的“添加引用”中找到System.Core.dll并添加引用
-
如何在代码中使用LINQ
1. 查询对象集合
我们首先需要定义一个对象集合,例如:
List<int> list = new List<int>() { 1, 3, 5, 7, 9, 11 };
然后可以通过下面这段代码进行查询:
var result = from i in list where i > 5 select i;
其中,我们用到了from
、where
和select
这三个关键字,依次表示源数据、筛选条件和需要输出的内容。上面的代码的含义就是:从list
这个对象集合中选择大于5的数字并输出。最终的结果就是得到了一个新的对象集合,该集合中仅包含符合要求的数字。
2. 查询数据库
除了查询对象集合外,我们还可以通过LINQ访问数据库。下面是一个简单的例子:
假设我们有一个Person表,该表包含了PersonId、Name、Age和Email四个属性,我们需要查询出表中年龄小于18岁的人员名单。我们的SQL语句如下:
SELECT Name FROM Person WHERE Age < 18
在C#代码中我们可以使用LINQ来实现上述SQL语句的功能。其中,我们需要首先定义连接字符串:
string connectionString = @"Server=.\SQLEXPRESS;Database=TestDatabase;Trusted_Connection=True;";
然后定义DataContext对象:
TestDatabaseDataContext dataContext = new TestDatabaseDataContext(connectionString);
最后编写查询代码:
var result = from person in dataContext.Person
where person.Age < 18
select person.Name;
上述代码的含义就是:从数据库中的Person表中选择年龄小于18岁的人员信息,并仅输出他们的名字。
总结
本文介绍了LINQ技术的背景和基本用法,并在实例中用到了查询对象集合和查询数据库两个方面。通过学习本文,读者可以对LINQ有一个大致的了解,为进一步深入学习和使用LINQ技术提供了基础。
示例说明
示例1:查询对象集合
List<int> list = new List<int>() { 1, 3, 5, 7, 9, 11 };
var result = from i in list where i > 5 select i;
foreach (var item in result)
{
Console.Write(item + " ");
}
输出结果:
7 9 11
示例2:查询数据库
上文中的示例已经涉及了查询数据库的操作,这里再给出一个完整的示例。假设我们需要查询出数据库中发送时间在2020年6月1日之后的邮件主题,首先我们需要在数据库中建立一个表Mail,该表包含MailId、Subject和SendTime三个字段。然后我们可以使用下面的代码进行查询:
string connectionString = @"Server=.\SQLEXPRESS;Database=TestDatabase;Trusted_Connection=True;";
TestDatabaseDataContext dataContext = new TestDatabaseDataContext(connectionString);
var result = from mail in dataContext.Mail
where mail.SendTime >= new DateTime(2020,6,1)
select mail.Subject;
foreach (var item in result)
{
Console.Write(item + "\n");
}
查询结果将会输出符合条件的邮件主题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:LINQ教程之LINQ简介 - Python技术站