在Linq查询中,我需要按日期和本地,日期或本地过滤约会。
因此,如果GivenDate和GivenLocal不为null,我需要按GivenDate和GivenLocal进行过滤:
appointments.Where(x => x.Date == x.GivenDate && x.Local == x.GivenLocal)
如果GivenDate为null,则过滤器将由Local:
完成appointments.Where(x => x.Local == x.GivenLocal)
如果GivenLocal为null,则按日期过滤:
appointments.Where(x => x.Date == x.GivenDate)
是否可以使用一个查询而不是使用IF语句和3个查询来执行此操作?
答案 0 :(得分:3)
appointments.Where(x =>
(x.GivenDate == null || x.Date == x.GivenDate) &&
(x.GivenLocal == null || x.Local == x.GivenLocal) && )
答案 1 :(得分:0)
appointmentments.Where(x =>((x.GivenDate!= null&& x.GivenLocal!= null&& x.Date == x.GivenDate&& x.Local == x.GivenLocal)||(x.GivenDate == null&& x.Local == x.GivenLocal)||(x.GivenLocal == null&& x.Date == x.GivenDate)))