我想从 dateRange 获取所有日期值,其中每个日期时间都是DayOfWeek.Friday
,.. Monday
,.. Sunday
。
Intersect 不起作用,因为我猜这两个列表不是真正的交叉点......而且它们有不同的类型:DateTime vs. Enum.DayOfWeek
这只给了我所有星期五,但我也想要星期一,星期日......而不使用 OR 运算符。
var dateRange = _dateService.GetDateRange(startDate, endDate).Where(d => visibleWeekDays.Any(v => d.DayOfWeek == v)).ToList();
这些都是我必须以某种方式比较的列表:
IEnumerable<DateTime> dateRange = _dateService.GetDateRange(startDate, endDate);
IEnumerable<DayOfWeek> visibleWeekDays = new List<DayOfWeek>
{
DayOfWeek.Friday,
DayOfWeek.Monday,
DayOfWeek.Sunday,
};
请不要将完整的 ling 查询写成解决方案。只需按照我必须用来解谜的随机顺序编写 linq 扩展方法。只是为了好玩和学习:)
更新
查看我的输入日期时间值和我想要的输出:
但请注意,visibleWeekDays 列表不是静态的。此集合中可以有动态数量的值。因此我可以也不想使用 && 或 || 操作员。