📜  LINQ-有用的资源(1)

📅  最后修改于: 2023-12-03 15:17:20.017000             🧑  作者: Mango

LINQ-有用的资源

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。