在C#中,如果你有多个筛选器布尔方法,并希望将它们合并为一个,可以使用委托(Delegate)和Lambda表达式来实现。这种方法通常用于LINQ查询中,以提高代码的可读性和效率。
假设你有一个学生列表,并且你想根据多个条件进行筛选,例如年龄大于18岁且成绩大于80分。
using System;
using System.Collections.Generic;
using System.Linq;
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
public int Score { get; set; }
}
public class Program
{
public static void Main()
{
List<Student> students = new List<Student>
{
new Student { Name = "Alice", Age = 20, Score = 85 },
new Student { Name = "Bob", Age = 17, Score = 90 },
new Student { Name = "Charlie", Age = 19, Score = 75 }
};
// 定义筛选条件
Func<Student, bool> ageFilter = s => s.Age > 18;
Func<Student, bool> scoreFilter = s => s.Score > 80;
// 合并筛选条件
Func<Student, bool> combinedFilter = s => ageFilter(s) && scoreFilter(s);
// 使用合并后的筛选条件进行查询
var filteredStudents = students.Where(combinedFilter);
foreach (var student in filteredStudents)
{
Console.WriteLine($"{student.Name} - Age: {student.Age}, Score: {student.Score}");
}
}
}
&&
)将多个筛选条件合并为一个。通过这种方式,你可以灵活地组合多个筛选条件,并在LINQ查询中高效地进行数据筛选。
领取专属 10元无门槛券
手把手带您无忧上云