要将Linq查询传递给方法,您可以使用Lambda表达式。Lambda表达式是一种匿名函数,可以作为参数传递给方法。以下是一个示例:
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
}
public static class StudentExtensions
{
public static List<TResult> FilterStudents<TResult>(this List<Student> students, Func<Student, TResult> predicate)
{
return students.Select(predicate).ToList();
}
}
public static void Main(string[] args)
{
List<Student> students = new List<Student>
{
new Student { Name = "Alice", Age = 20 },
new Student { Name = "Bob", Age = 25 },
new Student { Name = "Charlie", Age = 30 }
};
var filteredStudents = students.FilterStudents(x => x.Name);
var filteredStudents2 = students.FilterStudents(x => x.Age > 25);
}
在这个示例中,我们定义了一个名为FilterStudents
的扩展方法,它接受一个Func<Student, TResult>
类型的参数。Func<Student, TResult>
是一个委托,表示一个接受Student
类型参数并返回TResult
类型的函数。
在Main
方法中,我们使用Lambda表达式将Linq查询传递给FilterStudents
方法。第一个查询返回学生的名字,第二个查询返回年龄大于25的学生。
这种方法可以让您将Linq查询作为参数传递给方法,从而更灵活地处理数据。
领取专属 10元无门槛券
手把手带您无忧上云