如何从 IEnumerable 结果集中消除空值的可能性
How to obliterate possibility of nulls from IEnumerable resultset
如何在此处消除对 Any / null 的检查?
public List<Incident> GetByServiceActivity(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<Incident>();
}
我希望能够 return 只需 1 个这样的表达式:
return from s in this._xrmServiceContext.ServiceAppointmentSet
join i in this._xrmServiceContext.IncidentSet on s.RegardingObjectId.Id equals i.Id
select i;
我们如何才能 return 隐含地空,而不是必须检查 .Any()?
None 的 LINQ 方法中 return 一个 IEnumerable<T>
将 ever return 一个 null
值.他们总是 return 一个 non-null IEnumerable
或 IQueryable
。它代表的序列可能是空,但它永远不会是null
.
至于处理空箱,没什么好处理的。您可以在空 sequence/query 上调用 Distinct
就像在 non-empty 上一样有效,您也可以从空序列或 non-empty 序列中创建列表ToList
。您根本不需要检查任何东西。
如何在此处消除对 Any / null 的检查?
public List<Incident> GetByServiceActivity(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<Incident>();
}
我希望能够 return 只需 1 个这样的表达式:
return from s in this._xrmServiceContext.ServiceAppointmentSet
join i in this._xrmServiceContext.IncidentSet on s.RegardingObjectId.Id equals i.Id
select i;
我们如何才能 return 隐含地空,而不是必须检查 .Any()?
None 的 LINQ 方法中 return 一个 IEnumerable<T>
将 ever return 一个 null
值.他们总是 return 一个 non-null IEnumerable
或 IQueryable
。它代表的序列可能是空,但它永远不会是null
.
至于处理空箱,没什么好处理的。您可以在空 sequence/query 上调用 Distinct
就像在 non-empty 上一样有效,您也可以从空序列或 non-empty 序列中创建列表ToList
。您根本不需要检查任何东西。