我想使用 LINQ-to-objects 来查询几个层次的对象集合,以提取一个值。例如,给定一个 Entity 对象,如果标志设置为 1,我想获取 emailAddress 字符串,否则为 null:
Entity.CommunicationCollection.Communication.CommunicationDetail.EmailAddress
CommunicationDetail 如下所示:
public class CommunicationDetail
{
public int Flag;
public string EmailAddress;
}
我提出的查询如下所示:
string email = Entity.CommunicationCollection.FirstOrDefault(x => x.Communication.CommunicationDetail.Flag == 1).EmailAddress;
这样做的问题是层次结构中的任何空对象都会导致空引用异常。有没有办法构造查询以某种方式忽略空值,而不首先检查每个对象?(上面是一个简化的例子,我正在做的项目中的嵌套要深得多。)