schedules.Where(s => s.StartDate < DateTime.Now
|| (s.StartDate == null && s.EndDate != null));
Предполагается, что вам действительно нужно то, что вы сказали - все запущенные расписания, включая те, которые уже закончились.
Кроме того, вы можете изменить способ представления неопределенного периода графика, возможно, добавив для этого bool
. Если null
означает бесконечность, это всегда должно означать бесконечность.