score:-1

Accepted answer
internal list<int> getolddoctorsids()
{
    return getdoctorsids((doctor) => doctor.age > 30);
}

internal list<int> getexpensivedoctorsids()
{
    return getdoctorsids((doctor) => doctor.cost > 30000);
}

internal list<int> getdoctorsids(func<datarow, bool> condition)
{
    var result = from datarow doctor in doctortable.rows
                 where condition(doctor)
                 select doctor.id
    list<int> doctors = new list<int>();
    foreach (int id in result)
    {
         //register getting data
         database.logaccess("getolddoctorsid: " + id.tostring());
         if (database.allowaccess(doctorstable, id))
         {
             doctors.add(id);
         }
    }
}

score:0

internal list<int> getolddoctorsids(func<doctor, bool> whereclause)
{
    var result = doctortable.rows.where(d => whereclause(d)).select(d => d.id);
    //etc...
}

score:0

getdoctorsids(doctor => doctor.cost > 30000);

score:3

internal list<int> getdoctorsids(predicate<datarow> doctorfilter)
{
    var result = from datarow doctor in doctortable.rows
                 where doctorfilter(doctor)
                 select doctor.id
    list<int> doctors = new list<int>();
    foreach (int id in result)
    {
         //register getting data
         database.logaccess("getolddoctorsid: " + id.tostring());
         if (database.allowaccess(doctorstable, id))
         {
             doctors.add(id);
         }
    }
}

Related Query

More Query from same tag