想象一下下课:
Class Person {
DateTime birthdate;
}
我有一个包含一些Person-objects的列表:
List<Person> persons;
此列表已经通过一些特殊的类别,关于你不必关心。 请记住,应该保留当前的顺序。
现在列表应按生日值升序排序。 生日也可能是NULL!
我确实使用过以下内容,但我最终得到的是字母数字,而不是从最新日期到最早的日期:
persons = persons.Where(p => p.birthdate != null).OrderBy(p => p.birthdate).ToList();
我意识到这样一个事实,即那些因出生日期而获得NULL的人将被退出。 这没关系。
提前致谢:)
答案 0 :(得分:2)
首先,如果您想支持DateTime?
,则应使用DateTime
代替null
。我怀疑你的真实代码并不是你向我们展示的,因为它不会被命令&#34;字母数字&#34;如上所述。
但是,如果您使用Nullable<DateTime>
(也请注意ToList
),这应该有用:
persons = persons
.Where(p => p.birthdate.HasValue)
.OrderBy(p => p.birthdate.Value)
.ToList();
其次,&#34;这个列表已经通过了一些特殊的排序,关于你不必关心。请记住,应该保留当前的订单。&#34;
如果我们不知道 的订购方式,我们应该如何向您展示保留当前订单的方式?