21

プロパティごとにいくつかのオブジェクトを注文していSystem.DayOfWeekます。

DayOfWeekは日曜日を週の始まりとして扱いますが、最後に表示されるように並べたいと思います。これは単なる列挙型なので、変更することはできません。ただし、カスタム カルチャーを作成できる可能性があると読みましたが、これはおそらくやり過ぎだと思います。

List<TimeBand> orderedTimeBands = timeBands.OrderBy(x => x.DayName).ToList()

ですのでDayName、月曜→日曜に注文しDayOfWeekたいです。orderedTimeBands

何か案は?

4

2 に答える 2

51

最も簡単なアプローチは次のとおりです。

var orderedTimeBands = timeBands.OrderBy(x => ((int) x.DayOfWeek + 6) % 7)
                                .ToList()

したがって、次のようになります。

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

...それはあなたが望むものだと思います。

于 2013-09-03T11:25:29.220 に答える