C#中的LINQ是一种非常强大的查询语言,它可以在集合、数据库以及XML等各种数据源中查询和过滤数据,且具有高效、清晰、易读的特点。下面将针对C#中LINQ的基本用法进行详细讲解,包括如何使用LINQ进行简单的数据查询和过滤。
1. 基本语法
在使用LINQ时,需要使用一些基本的关键字和语法规则,包括:
- from:指定数据源,如数组、集合、数据库表等。
- in:用于指定数据源中元素的范围。
- where:指定数据查询的条件。
- select:对查询结果进行转换、筛选等操作。
下面是一个简单的例子:
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var result = from n in numbers
where n % 2 == 0
select n * n;
foreach (var n in result)
{
Console.WriteLine(n);
}
以上代码中,我们首先定义了一个整数数组numbers,然后使用LINQ查询该数组中所有偶数元素的平方,最后使用foreach遍历查询结果并输出。
2. 示例说明
2.1 数据库查询
LINQ不仅可以查询数组、集合等数据源,还可以查询数据库。我们可以使用LINQ to SQL技术来操作数据库,如下所示:
// 创建数据库连接
string connectionString = "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=TestDB;Integrated Security=True";
using (var cnn = new SqlConnection(connectionString))
{
cnn.Open();
// 创建LINQ to SQL数据上下文对象
var db = new DataContext(cnn);
// 从数据表中查询数据
var result = from p in db.Products
where p.Price > 100
select p;
// 遍历查询结果
foreach (var p in result)
{
Console.WriteLine("{0}: {1}", p.Name, p.Price);
}
}
以上代码中,我们首先创建数据库连接,并通过LINQ to SQL创建数据库上下文对象db。然后,我们使用LINQ查询Product表中价格大于100的产品,并遍历输出查询结果。
2.2 XML查询
LINQ同样也可以用于查询XML文档。下面是一个XML文档的例子:
<persons>
<person>
<name>Tom</name>
<age>20</age>
</person>
<person>
<name>Lucy</name>
<age>25</age>
</person>
</persons>
我们可以通过以下代码,对XML文档进行查询:
// 加载XML文档
XDocument doc = XDocument.Load("persons.xml");
// 查询年龄大于20的人
var result = from p in doc.Descendants("person")
where (int)p.Element("age") > 20
select new
{
Name = (string)p.Element("name"),
Age = (int)p.Element("age")
};
foreach (var p in result)
{
Console.WriteLine("{0}: {1}", p.Name, p.Age);
}
以上代码中,我们首先使用XDocument.Load方法加载XML文档。然后,我们使用LINQ查询该文档中年龄大于20的人,并将查询结果转换为匿名对象。最后,遍历输出查询结果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#中LINQ的基本用法实例 - Python技术站