这个问题出现在我阅读这篇文章时:
Deep Null checking, is there a better way?
以及这篇文章:
C# elegant way to check if a property's property is null
假设我想检查所有属性都不为空,或者有任何一个属性不为空(浅层属性)。
搜索条件对象:
(如果我们想要任何属性不为null)
或者
搜索条件对象:
Keyword (Searches Name and Description) != null ||
SectorId != null ||
IndustryId != null ||
HasOption != null ||
HasFutures != null ||
30 properties to go...
我们可以看到,语法有些难以理解。我希望能够得到像这样的内容:
SearchCriteria
.Has(criteria => criteria.Keywork)
.Has(criteria => criteria.SectorId)
.Has(criteria => criteria.HasOption)
.etc
(如果我们希望所有上述属性都不为空)
或者
SearchCriteria
.Has(criteria => criteria.Keywork).Or()
.Has(criteria => criteria.SectorId).Or()
.Has(criteria => criteria.HasOption).Or()
.etc
(如果我们想要任何属性不为null)
或者
SearchCriteria
.Has(criteria => criteria.Keywork).Or()
.Has(criteria => criteria.SectorId)
.Has(criteria => criteria.HasOption)
.etc
如果我们想要关键字或部门ID有值且HasOption有值。
那么我们是否有任何在codeplex上存在的项目?或者有没有优雅的方法可以结合深度空值检查和浅层空值检查?
int foo
这样的字段,其值为0
是否应该被视为null
。 - Marc Gravell