如何在此处消除对Any/null的检查?
public ListGetByServiceActivity(Guid serviceActivityGuid) { var result = from s in this._xrmServiceContext.ServiceAppointmentSet join i in this._xrmServiceContext.IncidentSet on s.RegardingObjectId.Id equals i.Id select i; return result.Any() ? result.Distinct().ToList() : new List (); }
我希望能够像这样简单地返回1个表达式:
return from s in this._xrmServiceContext.ServiceAppointmentSet join i in this._xrmServiceContext.IncidentSet on s.RegardingObjectId.Id equals i.Id select i;
我们如何隐式返回一个空,而不是必须检查.Any()?
返回的所有LINQ方法IEnumerable
都不会返回null
值.他们总是返回非null IEnumerable
或IQueryable
.它所代表的序列可能是空的,但它永远不会是null
.
至于处理空箱子,没有什么可以处理的.您可以Distinct
在非空的序列/查询上尽可能有效地调用空序列/查询,并且您也可以使用空序列或非空序列创建列表ToList
.你根本不需要检查任何东西.