我有一个类,例如。 Range 其中有两个 DateOnly 属性,begin 和 end。 end 属性是可选的,因此它可以为空。 (开放式范围) 例如
public class Range {
public DateOnly begin { get; set; }
public DateOnly end? { get; set; }
public Range(DateOnly b, DateOnly e) {
begin = b;
end = e;
}
}
我有一个像
List<Range>
这样的范围列表,如何按范围过滤是在一个日期间隔中,其中从和到的间隔也是 DateOnly?
我想用 .Where(
但是当范围的末尾可以为空时我该如何实现?
像这样吗?
.Where(r => date > begin.Value && (!r.end.HasValue || date < r.end.Value))
本质上:
date 在 begin 之后并且(end 为 null)或(date 小于 end)