对对象的子属性执行排序时出错
本文关键字:排序 出错 执行 属性 对象 | 更新日期: 2023-09-27 18:08:55
我在对象的子属性上执行OrderBy时遇到问题。
我有两个独立的模型,如下所示:
PersonModel:
public class PersonModel
{
public string Name { get; set;}
public DeptModel Dept { get; set; }
}
DeptModel
public class DeptModel
{
public int DeptId { get; set;}
public string DeptName { get; set;}
}
我已经使用了automapper来映射这两个类之间的关系,并且我能够正确地检索数据。
在检索数据之后,我试图通过在DeptName对象上使用linq来实现订单。然后显示错误"对象引用未设置为对象的实例"。
结果是检索数据IList
然后我对检索到的数据执行OrderBy,它在这里崩溃了。
var TMP = result。order (x => x. department . deptname).ToList();
我不知道为什么我得到这个错误。对于解决这个问题的任何建议都是非常感谢的。
您需要确保在默认比较中没有使用null
。这是一个简单的例子:
var tmp = result.OrderBy(x => ((x.Dept == null) || (x.Dept.Deptname == null)) ? "" : x.Dept.DeptName).ToList();
如果你想要一个真正好的解决方案,你应该实现你自己的比较器。
使用自己的IComparer<</p>