[英]checking an array of string objects for null values
我认为这是一个相当基本的问题,但是要么我的大脑还没有醒来,要么我只是变得笨拙!
我有一个具有以下定义的字符串集合的属性的类(名称被简化)
public class IdentifierCollection : BaseSubCollection, IIdentifierCollection
{
public string Id1{ get; set; }
public string Id2{ get; set; }
public string Id3{ get; set; }
// ...
}
我想在保存之前检查是否有任何属性确实有一个值,所以我目前正在做这样的事情...
if (string.IsNullOrEmpty(primaryObj.Identifiers?.Id2) &&
string.IsNullOrEmpty(primaryObj.Identifiers?.Id2) &&
string.IsNullOrEmpty(primaryObj.Identifiers?.Id3) &&
string.IsNullOrEmpty(primaryObj.Identifiers?.Id4) &&
string.IsNullOrEmpty(primaryObj.Identifiers?.Id5) &&
string.IsNullOrEmpty(primaryObj.Identifiers?.Id6) &&
string.IsNullOrEmpty(primaryObj.Identifiers?.Id7) &&
string.IsNullOrEmpty(primaryObj.Identifiers?.Id8))
{
}
只是输入这感觉是错误的! 一定会有更好的办法...
我认为这种属性检查没有任何问题。 对我来说,使用反射或实现一些接口只是为了能够遍历属性似乎有点过头了。 尽管我同意这么长的声明作为条件检查看起来很尴尬。 为了使代码更具可读性,我将把此检查提取到单独的私有方法中。
if (NoPropIsNullOrEmpty())
{
}
private bool NoPropIsNullOrEmpty()
{
return !(string.IsNullOrEmpty(primaryObj.Identifiers?.Id2) ||
string.IsNullOrEmpty(primaryObj.Identifiers?.Id2) ||
string.IsNullOrEmpty(primaryObj.Identifiers?.Id3) ||
string.IsNullOrEmpty(primaryObj.Identifiers?.Id4) ||
string.IsNullOrEmpty(primaryObj.Identifiers?.Id5) ||
string.IsNullOrEmpty(primaryObj.Identifiers?.Id6) ||
string.IsNullOrEmpty(primaryObj.Identifiers?.Id7) ||
string.IsNullOrEmpty(primaryObj.Identifiers?.Id8));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.