LINQ - 如何在接下来的三个工作日中排除表中的日期?

Cir*_*nja 6 linq

我需要找到调度应用程序的下三个可用工作日.可用的内容取决于表中的排除日期.所以...只要日期不在我的桌子而不是星期六或星期日,我想要接下来的三个.我想找到一种有效的方法.

我需要退货List<DateTime>.该表很简单 - ExcludedDates具有ID和带有排除日期的DateTime.

我想有一个单一的LINQ查询表达式,但无法弄明白...感谢所有提前,我道歉,如果这是微不足道或显而易见的 - 它不是我.

Cha*_*erg 8

试试这个...

  DateTime start = DateTime.Now.Date;
  var result = Enumerable.Range(1, 10) // make this '10' higher if necessary (I assume you only exclude non-workingdays like Christmas and Easter)
                    .Select(offset => start.AddDays(offset))
                    .Where(date => !( date.DayOfWeek == DayOfWeek.Saturday || date.DayOfWeek== DayOfWeek.Sunday))
                    .Where(d=> !exceptionTable.Any(date => date == d))
                    .Take(3).ToList();
Run Code Online (Sandbox Code Playgroud)