C# 从集合返回一些空值

C# 从集合返回一些空值,c#,linq,null,C#,Linq,Null,我有一个LINQ查询,我需要返回数据库中的所有客户,但是不是所有客户都有中间名。这是我的疑问: select new { firstName = a.firstname, middleName = a.middlename, lastName = a.lastname, }; foreach(var c in queryAccount) { console.writeline(c.firstname); console.

我有一个LINQ查询,我需要返回数据库中的所有客户,但是不是所有客户都有中间名。这是我的疑问:

select new 
{
        firstName = a.firstname,
        middleName = a.middlename,
        lastName = a.lastname,
};
foreach(var c in queryAccount) 
{    
    console.writeline(c.firstname);
    console.writeline(c.middlename);
    console.writeline(c.lastname);
}
我想要的是类似于:

if (c.middlename != null)
{
    console.writeline(c.middlename);
}
有人知道我怎样才能让它工作吗?

您只需使用operator:-

select new {
        firstName = a.firstname,
        middleName = a.middlename ?? String.Empty,
        lastName = a.lastname,
};

拉胡尔的回答是正确的。此外,如果您根本不想分配“middleName”,您可以执行以下操作:

Select(x =>
            {
                var obj = new TestData
                {
                    Lastname = x.Lastname,
                    Firstname = x.Firstname
                };
                if (!string.IsNullOrEmpty(x.Middlename))
                    obj.Middlename = x.Middlename;
                return obj;
            });