📅  最后修改于: 2023-12-03 15:17:20.017000             🧑  作者: Mango
LINQ(Language Integrated Query)是C#和VB.NET中广泛使用的语言集成查询。使用LINQ,可以轻松地查询对象,XML文档和数据库。
以下是一些有用的资源,可以帮助程序员更好地理解和使用LINQ。
官方文档提供了LINQ的完整参考,包括语法,方法和示例代码。它包括以下部分:
代码片段:
// 使用LINQ查询列表
var names = new List<string>{"Alice", "Bob", "Charlie"};
var results = from name in names
where name.StartsWith("B")
select name;
foreach (var result in results)
{
Console.WriteLine(result);
}
// 使用LINQ查询XML文档
XDocument doc = XDocument.Load("books.xml");
var titles = from book in doc.Descendants("book")
where (int)book.Element("price") > 10
select book.Element("title").Value;
foreach (var title in titles)
{
Console.WriteLine(title);
}
// 使用LINQ查询数据库
var context = new MyDbContext();
var customers = from c in context.Customers
where c.City == "Seattle"
select c;
foreach (var customer in customers)
{
Console.WriteLine(customer.Name);
}
以下是一些很好的教程和博客文章,涵盖了LINQ的各个方面。
代码片段:
// 使用LINQ查询数组
int[] numbers = { 5, 10, 8, 3, 6 };
var query = from num in numbers
where num % 2 == 0
orderby num
select num;
foreach (int num in query)
{
Console.Write(num + " ");
}
// 使用LINQ查询JSON数据
var jsonString = File.ReadAllText("data.json");
var jArray = JArray.Parse(jsonString);
var result = from item in jArray
where item["age"].Value<int>() > 18
select item["name"].Value<string>();
foreach (var name in result)
{
Console.WriteLine(name);
}
// 使用LINQ查询数据库
var context = new MyDbContext();
var customers = context.Customers
.Where(c => c.City == "Seattle")
.OrderBy(c => c.Name)
.ToList();
foreach (var customer in customers)
{
Console.WriteLine(customer.Name);
}
以下是一些开源项目,可以为LINQ学习和实践提供帮助。
代码片段:
// 使用Entity Framework Core查询数据库
var context = new MyDbContext();
var customers = context.Customers
.Where(c => c.City == "Seattle")
.OrderBy(c => c.Name)
.ToList();
foreach (var customer in customers)
{
Console.WriteLine(customer.Name);
}
// 使用LINQ to JSON查询JSON数据
var jsonString = File.ReadAllText("data.json");
var jArray = JArray.Parse(jsonString);
var result = from item in jArray
where item["age"].Value<int>() > 18
select item["name"].Value<string>();
foreach (var name in result)
{
Console.WriteLine(name);
}
// 使用CsvHelper查询CSV格式数据
using (var reader = new StreamReader("data.csv"))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
var records = csv.GetRecords<MyClass>();
foreach (var record in records)
{
Console.WriteLine(record.Name);
}
}
以上是一些有用的LINQ资源,希望可以帮助程序员更好地理解和使用LINQ。