我有一个代表员工可以工作的班次的课程:
public class Shift {
public int Id { get; set;}
public DateTime Start {get;set;}
public DateTime End { get; set;}
public DayOfWeek Day { get; set;}
}
假设我有一个单一员工的轮班列表:
List<Shift> myShifts;
我知道我可以使用以下 linq 语句按天分组:
var shiftsByDay = from a in myShift
group a by a.Day;
我的问题:对于每一天,我怎样才能得到所有重叠的班次,在不同的组中,而不重复计算?
重叠班次是开始或结束时间与另一个班次开始或结束时间重叠的班次。
如果可能的话,我希望能够使用 linq 做到这一点。