首页 > 解决方案 > LINQ 存在或任何谓词

问题描述

我有一个记录患者执行的一些活动的数据库,每个患者每天可以有很多或没有活动。

课程是:

public class Patient {
    public int ID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

public class Activity {
    public int ID { get; set; }
    public DateTime CreateDate { get; set; }
    public string ActivityName { get; set; }
    public int Patient_ID { get; set; }
}

// Load all relevant data from DB
public List<Patient> patientsAll = LoadPatientsAll();
public List<Activity> activitiesAll = LoadActivitiesAll();

// This list should only contain Patients,
// who had any record in activitiesAll a certain day
public List<Patient> patientsRelevant;

如何选择每天有任何注册活动List<Patient>的患者(进入患者相关变量)?DISTINCT

标签: c#linq

解决方案


对于您给定的输入,试试这个:

var query =
from patient in patientsAll
join activity in activitiesAll.Where(x=> x.CreateDate == DATEREQUIRED)
on patient.ID equals activity.Patient_ID
select patient;

var patients = query.Distinct();

正常的 Linq 连接是一个内部连接,因此只会从有相应活动记录的患者返回记录。


推荐阅读