当前位置:  开发笔记 > 编程语言 > 正文

如何在C#中对通用列表进行排序并允许NULL项首先出现在列表中?

如何解决《如何在C#中对通用列表进行排序并允许NULL项首先出现在列表中?》经验,为你挑选了1个好方法。

我在C#中有一个通用的对象列表,例如,这是对象可能是什么.

public class Thing {
    public string Name { get; set; }
    public DateTime EditDate { get; set; }
}

var things = new List();

现在我想打电话:

thing.Sort((t1, t2) => t1.EditDate.CompareTo(t2.EditDate));

但是,我的一些EditDate属性为null.我希望这些具有null EditDate属性的对象显示在我的列表顶部(即更接近零索引).我怎样才能做到这一点?



1> Jeff Yates..:

您可以创建一个更复杂的lambda,例如:

things.Sort((t1, t2) => 
{
 if (t1 == null)
 {
   return (t2 == null) ? 0 : -1;
 }
 if (t2 == null)
 {
   return 1;
 }
 return t1.EditDate.CompareTo(t2.EditDate);
});

EndDate不能null因为它是一种价值类型.但是,如果你有一个EndDate你认为的特定值null,你可以修改上面的代码,以与我应对t1t2存在的方式类似的方式考虑到这一点null.

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有