I'm ordering a number of objects by their
DayOfWeek treats Sunday as the start of the week, whereas I would like it to be ordered so it appears at the end. It's just an enum, so I can't modify it. However I've read that I may be able to create a custom culture but think this is probably overkill.
List<TimeBand> orderedTimeBands = timeBands.OrderBy(x => x.DayName).ToList()
The simplest approach would be:
var orderedTimeBands = timeBands.OrderBy(x => ((int) x.DayOfWeek + 6) % 7) .ToList()
So we have:
Name Original value Value after arithmetic Sunday 0 6 Monday 1 0 Tuesday 2 1 Wednesday 3 2 Thursday 4 3 Friday 5 4 Saturday 6 5
... which is what you want, I think.