【发布时间】:2021-03-04 13:31:44
【问题描述】:
我现在有这段代码,我想使用周末列表而不是静态日期 Sunday 和 Saturday 。如何在项目z.DayOfWeek和周末列表之间使用相等函数。
DateTime start = new DateTime(2021,3,3);
DateTime end = new DateTime(2021,3,27);
List<DateTime> blackOut = new List<DateTime>
{
new DateTime(2021,3,10),
new DateTime(2021,3,11)
};
var days = Enumerable.Range(0, (int)(end - start).TotalDays)
.Select(x => start.AddDays(x))
.Where(z => z.DayOfWeek != DayOfWeek.Saturday &&
z.DayOfWeek != DayOfWeek.Sunday &&
!blackOut.Contains(z))
.Count();
假设我有一个包含周末的列表周末列表,我尝试过的是:
List<string> weekendslist = new List<string>();
weekendslist.Add(DayOfWeek.Saturday.ToString());
weekendslist.Add(DayOfWeek.Sunday.ToString());
var days = Enumerable.Range(0, (int)(end - start).TotalDays)
.Select(x => start.AddDays(x))
.Where(z => weekendslist.Contains(z.DayOfWeek.ToString())
!blackOut.Contains(z))
.Count();
但这对我不起作用。任何人都知道我该怎么做才能做到这一点?
【问题讨论】:
-
创建一个工作日列表,然后拨打
Where(x => theList.Contains(x))?您在这里遇到了什么具体问题? -
你能给我解释一下你的方法吗?
-
你好像忘了否定你的
weekendslist.Contains。目前你只有周末。 -
要关注@TimSchmelter 的评论,请使用我的答案中的代码,而不是使用静态列表,而是使用类似
myListOfInts.Select(myInt => (DayOfWeek)myInt)