在C#中,LINQ(Language Integrated Query)和Lambda表达式可以帮助我们更简洁地处理复杂查询。它们允许我们以声明性方式编写查询,而不是使用传统的命令式编程。下面是一些示例,说明如何使用LINQ和Lambda表达式处理复杂查询。
Student
类和一个包含多个学生的List<Student>
:public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public double GPA { get; set; }
}
List<Student> students = new List<Student>
{
// 添加一些学生对象
};
var result = from s in students
where s.Age > 18 && s.GPA > 3.0
select s;
var result = students.Where(s => s.Age > 18 && s.GPA > 3.0);
var result = from s in students
orderby s.GPA descending
select s;
var result = students.OrderByDescending(s => s.GPA);
var result = from s in students
group s by s.Age into ageGroup
select new { Age = ageGroup.Key, AverageGPA = ageGroup.Average(s => s.GPA) };
var result = students.GroupBy(s => s.Age)
.Select(ageGroup => new { Age = ageGroup.Key, AverageGPA = ageGroup.Average(s => s.GPA) });
这些示例展示了如何使用LINQ和Lambda表达式处理复杂查询。通过将查询逻辑与数据操作分离,我们可以编写更具可读性和可维护性的代码。