我有这样的电话,
SomeList.Fetch(x => SomeCondition).OrderBy(x => x.GetType().GetProperty(sort).GetValue(x, null))
我得到Object reference not set to an instance of an object at System.Object.GetType()
。
知道可能导致这种情况的原因是什么?这种情况经常发生,仅在生产中发生。
感谢。
答案 0 :(得分:2)
如果您希望这不是在生产中发生,而是在开发中通过Fetch将空项添加到列表中。这就是例外的原因。
答案 1 :(得分:0)
您的事件链会导致您对可能不存在的项目强制执行操作。在调用任何属性之前,请考虑添加.Where(条件)。这样,如果该项不存在,它将不会尝试对其执行操作,从而避免出现空错误
答案 2 :(得分:0)
这应该修复你的空引用异常:
SomeList.Fetch(x => SomeCondition)
.Where(i => null!=i)
.OrderBy(x => x.GetType().GetProperty(sort).GetValue(x, null))