赞
踩
LINQ (Language Integrated Query) 是微软在 C# 和 VB.NET 等编程语言中引入的一个功能强大的查询工具。LINQ 提供了一种简洁且类型安全的方式来查询和操作数据,无论这些数据是存储在内存中的对象集合、XML 文档、SQL 数据库还是其他数据源。
ToList()
或 Count()
方法),查询才会真正执行。这种特性使得开发者能够轻松地构建和组合复杂的查询操作。List<Customer>
集合以找到所有年龄大于 30 的客户。总之,LINQ 为 C# 开发者提供了一种强大且灵活的工具来查询和操作各种类型的数据源,从而提高了开发效率和代码质量。
使用LINQ的C#示例,分别针对内存中的对象集合、XML文档和数据库查询。
假设你有一个包含学生信息的List<Student>
集合,你可以使用LINQ来查询它。
using System; using System.Collections.Generic; using System.Linq; public class Student { public string Name { get; set; } public int Age { get; set; } public string Grade { get; set; } } class Program { static void Main() { List<Student> students = new List<Student> { new Student { Name = "Alice", Age = 20, Grade = "A" }, new Student { Name = "Bob", Age = 22, Grade = "B" }, new Student { Name = "Charlie", Age = 19, Grade = "A" }, // ... 其他学生 }; // 查询所有年龄大于20的学生 var olderStudents = students.Where(s => s.Age > 20).ToList(); // 输出查询结果 foreach (var student in olderStudents) { Console.WriteLine($"Name: {student.Name}, Age: {student.Age}, Grade: {student.Grade}"); } } }
假设你有一个XML文件,你想要查询其中的某些元素。
using System; using System.Linq; using System.Xml.Linq; class Program { static void Main() { // 加载XML文档 XDocument doc = XDocument.Load("books.xml"); // 查询所有书的价格大于10的书籍 var expensiveBooks = doc.Descendants("book") .Where(b => (decimal)b.Element("price") > 10) .Select(b => new { Title = (string)b.Element("title"), Author = (string)b.Element("author"), Price = (decimal)b.Element("price") }); // 输出查询结果 foreach (var book in expensiveBooks) { Console.WriteLine($"Title: {book.Title}, Author: {book.Author}, Price: {book.Price}"); } } } // 示例books.xml内容 /* <books> <book> <title>Book 1</title> <author>Author 1</author> <price>15.00</price> </book> <book> <title>Book 2</title> <author>Author 2</author> <price>8.00</price> </book> <!-- 其他书籍 --> </books> */
使用LINQ to SQL或Entity Framework时,你可以使用LINQ语法来查询数据库。以下是一个简化的Entity Framework示例。
首先,你需要有一个DbContext和对应的DbSet。
using System; using System.Linq; using Microsoft.EntityFrameworkCore; // 假设你有一个DbContext和对应的DbSet<Blog> public class BlogContext : DbContext { public DbSet<Blog> Blogs { get; set; } // ... 其他DbSets // 配置数据库连接字符串等(通常在Startup.cs或Program.cs中) } public class Blog { public int BlogId { get; set; } public string Url { get; set; } // ... 其他属性 } class Program { static void Main() { using (var context = new BlogContext()) { // 查询所有博客,并按Url排序 var blogs = context.Blogs.OrderBy(b => b.Url).ToList(); // 输出查询结果 foreach (var blog in blogs) { Console.WriteLine($"Blog ID: {blog.BlogId}, URL: {blog.Url}"); } } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。