DateTime start = Competition.DateFrom;
TimeSpan diff = Competition.DateTo - Competition.DateFrom;
Enumerable.Range(0, diff.Days + 1)
.Select(offset => start.AddDays(offset))
.GroupJoin(
competition.Sections,
e => e.Date,
c => c.Date,
(e, c) => new { e.Date, Sections = c }
)
.Select(u => new Unit()
{
Name = u.Date.ToShortDateString(),
Date = u.Date,
Sections = u.Sections.ToList(),
})
.ToList();