我有一种方法可以将列表中某些学生对象的数据添加到数据表中.该方法检查studentList中满足特定条件的学生,然后将它们添加到数据表中.
我想在参数中指定条件,但是当我尝试将s.status作为我的第二个字符串参数传递时,我(理解上)会出错,因为在foreach循环开始之前s不会发挥作用.有没有办法让这项工作?
public void AddDataTableRows(DataTable datatable, string field, string condition)
{
foreach (student s in studentList)
{
if (field == condition)
{
datatable.Rows.Add(s.name,
s.totalDays,
s.improveOverall,
s.totalClassDays,
s.instructor,
s.grade);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想要的电话
AddDataTableRows(DataTable1, s.status, "active");
Run Code Online (Sandbox Code Playgroud)
它可以是这样的
public void AddDataTableRows(DataTable datatable, Func<Student,bool> cond)
{
foreach (student s in studentList)
{
if (cond(s))
{
datatable.Rows.Add(s.name,
s.totalDays,
s.improveOverall,
s.totalClassDays,
s.instructor,
s.grade);
}
}
}
Run Code Online (Sandbox Code Playgroud)
你现在可以称之为 AddDataTableRows(...., s => s.Status == "active");