检查可空值

时间:2015-06-05 14:18:44

标签: c# asp.net

我在执行代码的这一部分之前尝试检查GroupEmails是否为null。但是,每当我检查null值时,都会返回错误Cannot resolve symbol GroupEmails是否有更好的解决方案?

代码

Group = new DB.Group
{
    GroupPhones = groupPhones,

    GroupEmails = new List<DB.GroupEmail>
    {
        new DB.GroupEmail
        {
            Email = groupt.Email
        }
    }
}

尝试检查是否为null,如下所示:

Group = new DB.Group
{
    GroupPhones = groupPhones,

    GroupEmails == null ? null : new List<DB.GroupEmail>
    {
        new DB.GroupEmail
        {
            Email = groupt.Email
        }
    }
}

修改后的解决方案感谢@Habib

Group = new DB.Group
{
    GroupPhones = groupPhones,

    GroupEmails = group.Email == null ? null : new List<DB.GroupEmail>
                                               {
                                                  new DB.GroupEmail
                                                  {
                                                    Email = groupt.Email
                                                  }
                                                }
}

2 个答案:

答案 0 :(得分:1)

object initializer无需检查为null。

 GroupEmails == null ? null : new List<DB.GroupEmail>

GroupEmails属性正在new DB.Group的对象初始值设定项中初始化。

这甚至不应该编译,因为您无法在对象初始化程序中的属性/字段上执行这些检查。

如果您想要初始化您的财产GroupEmail而不考虑数据,那么您可以这样做:

Group = new DB.Group
{
    GroupPhones = groupPhones,
    GroupEmails = new List<DB.GroupEmail>(),
}

或者如果您想将group.Email与null进行比较,则可以执行以下操作:

GroupEmails = group.Email == null ? null : new List<DB.GroupEmail>
                                          {
                                            new DB.GroupEmail
                                            {
                                              Email = groupt.Email
                                            }
                                          }

答案 1 :(得分:1)

您正在创建该对象,因此我不确定您为什么要检查null ...

var group = new DB.Group();
group.GroupPhones = groupPhones;
group.GroupEmails = new List<DB.GroupEmail>();
group.GroupEmails.Add(new DB.GroupEmail() { Email = groupt.Email });