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;
これの問題は、階層内の null オブジェクトによって null ref 例外が発生することです。最初にすべてのオブジェクトをチェックせずに、何らかの方法でヌルを無視するようにクエリを構成する方法はありますか? (上記は単純化された例です。私が取り組んでいるプロジェクトのネストはもっと深いものです。)