我有一个班级代表员工可以工作的转变:

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做到这一点。

最佳答案

尝试这个:

http://staceyw.spaces.live.com/Blog/cns!F4A38E96E598161E!993.entry

关于c# - Tricky Linq Group通过时间范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/754546/

10-16 09:51