1

オブジェクトの配列があり、DateTime?それらを並べ替えて Web ページにレンダリングしたいと考えています。問題は、値のないものがリストの一番上に表示されているように見えるので、それらを一番下に表示したいということです。

DateTime?値が設定されていないアイテムが一番下に表示される配列をソートする最良の方法は何ですか。

したがって、これの代わりに:

  1. [値なし]
  2. 2013 年 1 月 1 日
  3. 2013 年 1 月 15 日

これ欲しい:

  1. 2013 年 1 月 1 日
  2. 2013 年 1 月 15 日
  3. [値なし]
4

2 に答える 2

10

null合体演算子を利用できるはずです。例えば:

var orderedDates = nullableDates.OrderBy(date => date ?? DateTime.MaxValue);

これにより、欠落している (null) 日付の最大値が代用され、それらがソートされたシーケンスの最後にプッシュされます。この日付がおそらくオブジェクトの一部である場合、もちろんこれを使用して、オブジェクトの日付プロパティによってシーケンスを並べ替えることができます。

var orderedFoos = foos.OrderBy(foo => foo.SomeDate ?? DateTime.MaxValue);
于 2013-05-28T02:27:37.283 に答える
0
var ordered = dates.OrderBy(x => x ?? DateTime.MaxValue);
于 2013-05-28T02:28:18.270 に答える