gpt4 book ai didi

c# - 如何将谓词传递给 linq 表达式

转载 作者:行者123 更新时间:2023-12-02 04:57:30 25 4
gpt4 key购买 nike

给定一个像这样的方法签名......

IEnumerable<Student> get(Func<DataRow, bool> predicate);

如何将谓词参数传递给 linq 表达式?

public override IEnumerable<Student> get(Func<System.Data.DataRow, bool> predicate = null) {
var students = from student in _dataSet.Tables[0].AsEnumerable()
join attendance in _dataSet.Tables[1].AsEnumerable()
on student.Field<int>("id") equals attendance.Field<int>("idStudent")
join grade in _dataSet.Tables[2].AsEnumerable()
on student.Field<int>("id") equals grade.Field<int>("idStudent")
join assignment in _dataSet.Tables[3].AsEnumerable()
on student.Field<int>("id") equals assignment.Field<int>("idStudent")
// where predicate??
// select blahblahblah
// return statement

}

最佳答案

因为 predicate 是一个将 DataRow 作为输入的函数——像 where predicate(student) 一样使用它。

var students = from student in _dataSet.Tables[0].AsEnumerable()
...
where predicate == null || predicate(student)
select student

关于c# - 如何将谓词传递给 linq 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17735235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com