var query =
(from Contact con in e.Results
from ContactPhoneNumber phn in con.PhoneNumbers
from ContactEmailAddress email in con.EmailAddresses.DefaultIfEmpty()
where con.DisplayName.Contains(txtContasctSearch.Text)
select new person()
{
displayName = con.DisplayName,
displayEmail = (email.EmailAddress == null ? String.Empty : email.EmailAddress),
displayPhone = phn.PhoneNumber
}).ToList();
EmailAddress
字段并不总是可用的。然而,如果它存在的话,我仍然想把它带回来。我想模仿左联接,但是上面的代码返回了一个错误。
有什么想法吗?
我收到的错误是:
System.NullReferenceException occurred
_HResult=-2147467261
_message=NullReferenceException
HResult=-2147467261
Message=NullReferenceException
Source=wpChoreList
StackTrace:
at wpChoreList.personSetup.<Contacts_SearchCompleted>b__8(<>f__AnonymousType1`2 h__TransparentIdentifier1)
InnerException:
您正在检查null的错误值:
displayEmail = (email.EmailAddress == null ? String.Empty : email.EmailAddress),
电子邮件应该是空的,而不是电子邮件。EmailAddress,尝试将该行更改为以下行:
displayEmail = (email == null ? String.Empty : email.EmailAddress),