c# - 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
解决方案
对于您给定的输入,试试这个:
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 连接是一个内部连接,因此只会从有相应活动记录的患者返回记录。
推荐阅读
- javascript - React 上的 Bootstrap 5:无法在“文档”上执行“querySelector”
- leaflet - 基于标记属性的草皮缓冲区样式
- rust - 是否有一种零拷贝方法来找到任意数量的集合的交集?
- concurrency - Netty 可以处理具有多个线程的单个管道吗?
- function - 为什么将调用函数提前 1 个字节会导致它发生故障?修改什么来解决?
- android - 如果用户未在 android 中选择,如何在 autocompleteTextView 下拉菜单中显示错误?
- python - 根据月份对元组列表进行排序
- notepad++ - 替换目录路径而不更改所有路径
- php - preg_replace_callback 替换括号内的日期
- ios - 获取 NSDictionary 中存在的所有键并放入 Array